- 浏览: 119317 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
roychenyi:
<br>1<br>2<br> ...
pager-taglib 使用说明 -
roychenyi:
<br>换行<br>换行<br& ...
pager-taglib 使用说明 -
wangwenfei1985:
[flash=200,200][url][img][list] ...
pager-taglib 使用说明 -
时光后19:
,看到你这样真好,
FileNet调用webService配置 -
ysen:
大sql导入mysql
如果是SQL格式的。有的可能上100 ...
mysqldump备份详解
java 的switch 语句的case 匹配为什么不能像delphi一样 支持String类型 哦
这里可以通过反射的话效果更佳
// 女友工厂 public class DreamGirlCreatFactory { public static DreamGirl creatDreamGirl(String girlName){ if(girlName.equals("BeautifulGirl")){ return new BeautifulGirl(); }else if(girlName.equals("LivelyGirl")){ return new LivelyGirl(); } else if(girlName.equals("LooksMediocreGirl")){ return new LooksMediocreGirl(); }else if(girlName.equals("SensibleGirl")){ return new SensibleGirl(); } return null; } public static void main(String[] args){ String girlName1 = "BeautifulGirl"; String girlName2 = "LivelyGirl"; String girlName3 = "LooksMediocreGirl"; String girlName4 = "SensibleGirl"; String[] girlName = new String[4]; girlName[0]=girlName1; girlName[1]=girlName2; girlName[2]=girlName3; girlName[3]=girlName4; for(int i=0; i<4;i++){ DreamGirl girl = DreamGirlCreatFactory.creatDreamGirl( girlName[i]); girl.can_do_something_for_boy(); } } }
下面是创建的对象的 接口
//基类 public class DreamGirl { public void can_do_something_for_boy(){ } }
下面都是具体实现
public class BeautifulGirl extends DreamGirl { public void can_do_something_for_boy() { System.out.println("陪老公逛街!!!"); } }
public class LivelyGirl extends DreamGirl { public void can_do_something_for_boy() { System.out.println("陪老公聊天!!!"); } }
public class LooksMediocreGirl extends DreamGirl { public void can_do_something_for_boy() { System.out.println("给老公做饭!!!"); } }
public class SensibleGirl extends DreamGirl { public void can_do_something_for_boy() { System.out.println("给老公洗衣服!!!"); } }
评论
18 楼
wujiazhao88
2009-12-10
话说起来JAVA7怎么有点像C#了,支持string的switch了。。
17 楼
treblesoftware
2009-12-09
zhao_xiao_dong 写道
我一直对工厂模式没有一个好的理解,它的意思何在?
小弟经验不太足,望高手给个好的答案,最好举个例子哈!
小弟经验不太足,望高手给个好的答案,最好举个例子哈!
如果你代码到处使用new A();
此时,如果你的对象不叫A,叫A2。
那么,这个时候你的代码里只要有new A();的地方都修要修改成new A2();这样一来,你要修改很多地方,当然,现在IDE一般支持自动重构,设计模式是很多年前的东西了,那个时候没有这么聪明的IDE。另外,普通工厂作用不大,更多是面向接口的,或者是抽象的。
16 楼
zhao_xiao_dong
2009-12-09
我一直对工厂模式没有一个好的理解,它的意思何在?
小弟经验不太足,望高手给个好的答案,最好举个例子哈!
小弟经验不太足,望高手给个好的答案,最好举个例子哈!
15 楼
ysen
2009-12-09
treblesoftware 写道
grunt1223 写道
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。
不是用Pattern就好阿。。
恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。
PS:DI本质上也是工厂啊,只是它们帮你实现了
呵呵,工厂可以帮助你管理那些对象么?工厂只帮你生成对象。
管理对象spring不错
14 楼
treblesoftware
2009-12-09
grunt1223 写道
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。
不是用Pattern就好阿。。
恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。
PS:DI本质上也是工厂啊,只是它们帮你实现了
呵呵,工厂可以帮助你管理那些对象么?工厂只帮你生成对象。
13 楼
grunt1223
2009-12-09
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。
不是用Pattern就好阿。。
恩,我的理解是,简单工厂主要是将散布在各处的对象创建过程统一到一个类当中,试想有多个类中都要用到这些女友,万一需要修改某个女友的具体实现,就不需要在各处代码中修改,只要在工厂里修改具体的实现即可。
PS:DI本质上也是工厂啊,只是它们帮你实现了
12 楼
treblesoftware
2009-12-09
ysen 写道
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。
不是用Pattern就好阿。。
简单工厂有它的优点也有缺点,没有完美的单独的设计模式,只有完美的设计模式的组合,我在工厂方法模式中,已经将这两种模式进行了对比
说个不好听的话,当DI加入JDK的时候,工厂还需要么?
11 楼
ysen
2009-12-08
jasonw 写道
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。
不是用Pattern就好阿。。
简单工厂有它的优点也有缺点,没有完美的单独的设计模式,只有完美的设计模式的组合,我在工厂方法模式中,已经将这两种模式进行了对比
10 楼
whaosoft
2009-12-08
lz实现的是工厂模式中的简单工厂
9 楼
水车老大
2009-12-08
wangdgsc 写道
lz,你的女朋友多是多,不过都需要临时去找,不如先找好,放在那里,等要的时候直接去拿不更方便嘛,呵呵,而且这也有一个好处,一是一个可以一直的使用,而是多少有个限制,毕竟,到底是凡人嘛,不能太过了,差不多就好了,太多了会内在溢出
这时候是不是可以考虑建立一个 girl池啊
8 楼
jasonw
2009-12-08
意义何在? 解决了什么问题? 要添加新女友还必须修改factory....而且像其他人提出的那样,用string作这个是非常不好的。 要用enum. 可以参看effective java 1st/2nd edition.
不是用Pattern就好阿。。
不是用Pattern就好阿。。
7 楼
ysen
2009-12-07
wangdgsc 写道
lz,你的女朋友多是多,不过都需要临时去找,不如先找好,放在那里,等要的时候直接去拿不更方便嘛,呵呵,而且这也有一个好处,一是一个可以一直的使用,而是多少有个限制,毕竟,到底是凡人嘛,不能太过了,差不多就好了,太多了会内在溢出
这是简单工厂啦,你的要求应该是hankesi2000写到的抽象工厂方法嘿嘿
6 楼
wangdgsc
2009-12-07
lz,你的女朋友多是多,不过都需要临时去找,不如先找好,放在那里,等要的时候直接去拿不更方便嘛,呵呵,而且这也有一个好处,一是一个可以一直的使用,而是多少有个限制,毕竟,到底是凡人嘛,不能太过了,差不多就好了,太多了会内在溢出
5 楼
ysen
2009-12-07
hankesi2000 写道
建议LZ将每种类型的美女,再放到一个小的简单工厂里,然后把这些小工厂放到一个final的HashMap里,通过多态的方式处理,直接舍弃switch就行了。简单工厂如:
然后在DreamGirlCreatFactory 里放一个HashMap:
其他的美女跟这个类似,在使用时改为:
看起来感觉更好一些,只是比较复杂。。。
//接口: public interface GirlFactory{ DreamGirl creatDreamGirl(); } public class BeautifulGirlFactory implements GirlFactory{ public DreamGirl creatDreamGirl(){ return new BeautifulGirl(); } }
然后在DreamGirlCreatFactory 里放一个HashMap:
private final Map map = new HashMap(){ { put("BeautifulGirl",new BeautifulGirlFactory()); } };
其他的美女跟这个类似,在使用时改为:
public static DreamGirl creatDreamGirl(String girlName){ return map.get(girlName).creatDreamGirl();//可以做一些额外处理,在此简化 }
看起来感觉更好一些,只是比较复杂。。。
这个应该就是抽象工厂模式了
4 楼
hankesi2000
2009-12-07
建议LZ将每种类型的美女,再放到一个小的简单工厂里,然后把这些小工厂放到一个final的HashMap里,通过多态的方式处理,直接舍弃switch就行了。简单工厂如:
然后在DreamGirlCreatFactory 里放一个HashMap:
其他的美女跟这个类似,在使用时改为:
看起来感觉更好一些,只是比较复杂。。。
//接口: public interface GirlFactory{ DreamGirl creatDreamGirl(); } public class BeautifulGirlFactory implements GirlFactory{ public DreamGirl creatDreamGirl(){ return new BeautifulGirl(); } }
然后在DreamGirlCreatFactory 里放一个HashMap:
private final Map map = new HashMap(){ { put("BeautifulGirl",new BeautifulGirlFactory()); } };
其他的美女跟这个类似,在使用时改为:
public static DreamGirl creatDreamGirl(String girlName){ return map.get(girlName).creatDreamGirl();//可以做一些额外处理,在此简化 }
看起来感觉更好一些,只是比较复杂。。。
3 楼
jltest
2009-12-07
根据ls们总结
1.lz的例子更适合enum。
2.现在string可以作为case了。
1.lz的例子更适合enum。
2.现在string可以作为case了。
2 楼
魔力猫咪
2009-12-06
Java7就支持String作为Case了。
1 楼
oxromantic
2009-12-06
enum 还不够吗
发表评论
-
email 发送接口
2012-02-29 17:48 1488企业邮件发送有自己的发送平台,其它系统包括业务系统常常将发送邮 ... -
dom4j中的单例策略
2010-04-14 13:53 1504单例模式的实现方法有很多,饿汉和饱汉 ,Double-chec ... -
OOD原则
2010-03-09 16:51 1297单一职责原则(SRP) 就一个类而言,应该仅有一个引起它 ... -
GRASP(基于职责设计对象)
2010-03-09 16:41 1412GRASP(General Responsibility A ... -
女友的对话(中介者模式也叫调停者)
2010-01-02 20:40 861需要中介者对象作为通信控制平台 所操控的抽象对象 ... -
请假 加薪(职责链模式)
2009-12-30 20:50 1228学习笔记 职责链模式的结构 和装饰模式的结构是一样的。 ... -
如何换数据库(未使用任何框架)
2009-12-18 04:25 905因为之前使用的mysql 现在想转为Oracle实现 ... -
和女友的不愉快(访问者模式)
2009-12-13 13:59 989老鸟飞过哈 最近和女友很不和,特此用段模式写下自己的状 ... -
起床做饭(观察者模式)
2009-12-10 23:02 1042//通知者 public class Boy { //状 ... -
朋友做客(外观模式或者门面模式)
2009-12-10 01:12 823老鸟飞过 package facade; /* ... -
城市的生活成本(模板方法)
2009-12-09 16:50 838public abstract class Boy { ... -
女友多的好处2(工厂方法)
2009-12-08 01:01 1371(老鸟略过) 之前的一篇简单方法模式连接地址 http:/ ... -
带女友干活(代理模式)
2009-12-06 23:22 1275老鸟跳过请跳过, 最近无聊,贴一些自己过去学习设计模式 ... -
老公爱吃的菜(策略模式)
2009-12-06 00:09 941将策略的上下文的构造函数换用简单工厂模式的话就将业务对象封装起 ... -
陪她们依次去旅游(装饰模式)
2009-12-05 21:52 802//梦中情人 呵呵 public c ... -
不同的年龄阶段喜欢不同的女孩 (状态模式)
2009-12-05 21:32 1118讨媳妇的男孩 public class Boy { ...
相关推荐
我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂模式、工厂方法模式的意图、所能解决的问题及适用情景有一定的了解了。但是若要达到灵活运用,什么时候用,怎样用合适还不是看一篇文章就能解决的问题。呵呵...
PHP实现工厂模式设计日志记录器,客户可通过修改配置文件灵活地改变日志记录方式
工厂模式将目的将创建对象的具体过程屏蔽隔离起来、解耦:将对象的创建和使用的过程分开 适配器模式是将一个类的接口转换成另一个接口,确保接口不兼容的类可以一起工作的结构型模式。 代理在有些情况下,一个客户...
一个简单的C#WinForm窗体包含3个功能,由3个按钮分别实现: ...适合给哄女朋友开心或者用来表白,程序设计非常简单属于一看就会的内容,这个只是一个dome,后续计划有一个完善整合的哄女朋友开心的窗体程序
13、CHAIN OF RESPONSIBLEITY —晚上去上英语课,为了好开溜坐到了最后一排,哇,前面 、 坐了好几个漂亮的 MM 哎, 找张纸条, 写上“Hi,可以做我的女朋友吗?如果不愿意请向前传”, 纸条就一个接一个的传上去了,...
不管是情人节还是什么节日,只要拥有它,女朋友看了绝对喜欢!!图片,每件事情的日期全部都改成自己的日期,图片替换成自己的图片。
程序员送给女友的基于JavaScript的高端3D相册源码程序员送给女友的基于JavaScript的高端3D相册源码程序员送给女友的基于JavaScript的高端3D相册源码程序员送给女友的基于JavaScript的高端3D相册源码程序员送给女友的...
直接点击html看效果,浏览器打开就好了, 1.文字在 take.js 里面改 或者 index.html里面给 2.女朋友的照片在assets/img 里面替换 背景图在img文件夹底下,
程序员专属送给女朋友的礼物!在情人节送给女朋友感动到哭的礼物--3d动态相册。 代码已经弄好直接点击html文件就可以查看效果;自己修改文件夹image里的图片,换成女友的照片就可以发给女朋友啦!
给女朋友做的微信公众号消息每日自动推送天气及纪念日通知教程,该教程为github每日自动线上运行版本。本人亲测妹子很喜欢~女孩子都喜欢这种用心做的东西! 1.最新版本 成品 +源码 +消息模板 (需要自己申请 天行 ...
表白源码送女朋友
原生(HTML+CSS+JS),网页作品代码简单,可使用任意HTML编辑软件(如:`Dreamweaver、HBuilder、Vscode 、Sublime 、 Webstorm、Text 、Notepad++` 等任意html编辑软件进行运行及修改编辑等操作) HTML静态网页设计...
使用HTML+CSS实现了照片倾斜、遮罩效果,可以用来做一个简单的小相册,程序员朋友可以做点小东西哄一下女朋友*_*
精美简单的3D相册,让女朋友美美哒
程序员为女朋友写的js 3D相册,立体多角度展示你女朋友图片 喜欢的可以收藏
如果没有女友这事已成为一个不争的事实,那能不能做点什么改变呢,比如说别人快下班的时候给女朋友打电话交代说先把饭煮了,咱们程序员也可以拿起电话,发个短信给家里边那位----Arduino开发板,叫她把热水器打开,...
程序员专用送给女朋友,收到的女朋友们都表示,哭了哭了T T
送给女朋友的源码
送祝福,女朋友生日送这块精美的生日祝福小程序(直接解压运行即可,退出按Esc键)是很不错的,绝度会给TA一个惊喜,还可以DIY呢?