欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

JAVA枚举与设计模式

  • 资源ID:181682129       资源大小:115.52KB        全文页数:20页
  • 资源格式: PPT        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

JAVA枚举与设计模式

Java枚举与程序设计作者:李金峰作者:李金峰l 枚举l 单例模式l责任链模式1.1一个枚举的小例子 package com.li;public enum WeeKDay MON,TUS,WED,THI,FRI,SAT,SUN;1.2枚举概述 关键字enum可以将一组具名的值的有限集合创作成一种新的类型,而这种具名的值可以作为常规的组件使用1.3 基本函数 l valueOf();l name();lOrdinal();ltoString();1.4静态导入package com.li;import static com.li.WeekDay1.*;public class TestStaticImport public static void main(String args)System.out.println(MON);1.5.1向enum中添加新方法1public enum WeekDay2 MON(1),TUS,WED,THI(4),FRI,SAT,SUN;private int value;private WeekDay2()private WeekDay2(int value)this.value=value;public int getValue()return this.value;1.5.2向enum中添加新方法2public enum WeekDay3 MON(Monday),TUS(Tuesday),WED(Wednesday),THI(Thursday),FRI(Friday),SAT(Saturday),SUN(Sunday);private String week;private WeekDay3(String week)this.week=week;public String getWeek()return this.week;1.6覆盖toString()方法public enum WeekDay5 MON,TUS,WED,THI,FRI,SAT,SUN;public String toString()return name().toLowerCase();1.6实现public enum WeekDay6 implements OperateMON,TUS,WED,THI,FRI,SAT,SUN;Overridepublic String doSomething()/TODO Auto-generated method stubreturn null;1.7随机选取public class Enums private static Random rand=new Random(47);public static T extends Enum T random(Class cl)return random(cl.getEnumConstants();public static T random(T values)return valuesrand.nextInt(values.length);l 枚举l 单例模式l责任链模式2 单例模式 l由于枚举的构造函数必须是私有的,所以用它实现单例模式非常简单。2.1单例实现1public enum Singleton INSTANCE;private String name;public String getName()return name;public void setName(String name)this.name=name;public static void main(String args)INSTANCE.setName(DS);System.out.println(INSTANCE.getName();2.2单例实现2public enum Singleton1 RED(255,0,0),GREEN(0,255,0),BLUE(0,0,255);int redValue;int greenValue;int blueValue;private Singleton1(int red,int green,int blue)this.redValue=red;this.greenValue=green;this.blueValue=blue;public int getRedValue()return redValue;public void setRedValue(int red)this.redValue=red;public int getGreenValue()return greenValue;public void setGreenValue(int green)this.greenValue=green;public int getBlueValue()return blueValue;public void setBlueValue(int blue)this.blueValue=blue;public static void main(String args)System.out.println(Singleton1.RED.getRedValue();l 枚举l 单例模式l责任链模式3 责任链模式 l责任链(Chain of Responsibility)是以多种不同的方式来解决问题,然后把他们链到一起。当一个请求来时,它遍历这个链,直到链中的某个解决方案能处理该请求。l下面以新入职员工经历的三方面考核为例。考核一:面试 60分以下 NO 考核二:笔试 60分以下 NO 考试三:绩效 60分以下 NO 每个员工都要经历这三个过程,一项不合格,拒绝转正。3.1绩效代码package com.li.thinking.chain;import java.util.Iterator;public class Performance enum Audition NO,YES1,YES2,YES3,YES4;enum Exam NO,YES1,YES2,YES3,YES4;enum Perform NO,YES1,YES2,YES3,YES4;Audition audition;Exam exam;Perform perform;static long count=0;long id=count+;public String toString()return Performance +id;public boolean check(Object o)if(o.equals(NO)return false;return true;public String getDetails()String result=toString()+Audition:+audition+Exam:+exam+Perform:+perform;if(result.indexOf(NO)0)result+=-Sorry,you are failed!;else result+=-You are successfull!;return result;public static Performance randomPerformance()Performance p=new Performance();p.audition=Enums.random(Audition.class);p.exam=Enums.random(Exam.class);p.perform=Enums.random(Perform.class);return p;public static Iterable generator(final int count)return new Iterable()int n=count;public Iterator iterator()return new Iterator()Overridepublic boolean hasNext()/TODO Auto-generated method stubreturn n-0;Overridepublic Performance next()/TODO Auto-generated method stubreturn randomPerformance();Overridepublic void remove()throw new UnsupportedOperationException();3.2评审代码package com.li.thinking.chain;public class ReView enum PerformanceHandler Audition boolean handle(Performance p)switch(p.audition)case NO:return false;default:return true;,Exam boolean handle(Performance p)switch(p.audition)case NO:return false;default:return true;,Perform boolean handle(Performance p)switch(p.audition)case NO:return false;default:return true;abstract boolean handle(Performance p);static void handle(Performance p)for(PerformanceHandler ph:PerformanceHandler.values()if(ph.handle(p)return;public static void main(String args)for(Performance pf:Performance.generator(10)handle(pf);System.out.println(pf.getDetails();Thank you!作者:李金峰

注意事项

本文(JAVA枚举与设计模式)为本站会员(仙***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!