打字猴:1.700457852e+09
1700457852 设计模式之禅 [:1700453943]
1700457853 设计模式之禅 8.5 最佳实践
1700457854
1700457855 工厂方法模式在项目中使用得非常频繁,以至于很多代码中都包含工厂方法模式。该模式几乎尽人皆知,但不是每个人都能用得好。熟能生巧,熟练掌握该模式,多思考工厂方法如何应用,而且工厂方法模式还可以与其他模式混合使用(例如模板方法模式、单例模式、原型模式等),变化出无穷的优秀设计,这也正是软件设计和开发的乐趣所在。
1700457856
1700457857
1700457858
1700457859
1700457860 设计模式之禅 [:1700453944]
1700457861 设计模式之禅 第9章 抽象工厂模式
1700457862
1700457863 设计模式之禅 [:1700453945]
1700457864 9.1 女娲的失误
1700457865
1700457866 第8章讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,忘记给人类定义性别了,那怎么办?抹掉重来,于是人类经过一次大洗礼,所有的人种都消灭掉了,世界又是空无一物,寂静而又寂寞。
1700457867
1700457868 由于女娲之前的准备工作花费了非常大的精力,比如准备黄土、八卦炉等,从头开始建立所有的事物也是不可能的,那就想在现有的条件下重新造人,尽可能旧物利用嘛。人种(Product产品类)应该怎么改造呢?怎么才能让人类有爱有恨呢?是神仙当然有办法了,定义互斥的性别,然后在每个个体中埋下一颗种子:异性相吸,成熟后就一定会去找个异性(这就是我们说的爱情原动力)。从设计角度来看,一个具体的对象通过两个坐标就可以确定:肤色和性别,如图9-1所示。
1700457869
1700457870
1700457871
1700457872
1700457873 图9-1 肤色性别坐标图
1700457874
1700457875 产品类分析完毕了,生产的工厂类(八卦炉)该怎么改造呢?只有一个生产设备,要么生产出来的全都是男性,要么都是女性。那不行呀,这么翻天覆地的改造就是为了产生不同性别的人类。有办法了!把目前已经有的生产设备——八卦炉拆开,于是女娲就使用了“八卦复制术”,把原先的八卦炉一个变两个,并且略加修改,就成了女性八卦炉(只生产女性人种)和男性八卦炉(只生产男性人种),于是乎女娲就开始准备生产了,其类图如图9-2所示。
1700457876
1700457877
1700457878
1700457879
1700457880 图9-2 女娲重新生产人类
1700457881
1700457882 这个类图虽然大,但是比较简单。Java的典型类图,一个接口,多个抽象类,然后是N个实现类,每个人种都是一个抽象类,性别是在各个实现类中实现的。特别需要说明的是HumanFactory接口,在这个接口中定义了三个方法,分别用来生产三个不同肤色的人种,也就是我们在图9-1中的Y坐标,它的两个实现类分别是性别,也就是图9-1中的X坐标,通过X坐标(性别)和Y坐标(肤色)唯一确定了一个生产出来的对象。我们来看看相关的实现,Human接口如代码清单9-1所示。
1700457883
1700457884 代码清单9-1 人种接口
1700457885
1700457886 public interface Human{
1700457887
1700457888 //每个人种都有相应的颜色
1700457889
1700457890 public void getColor();
1700457891
1700457892 //人类会说话
1700457893
1700457894 public void talk();
1700457895
1700457896 //每个人都有性别
1700457897
1700457898 public void getSex();
1700457899
1700457900 }
1700457901
[ 上一页 ]  [ :1.700457852e+09 ]  [ 下一页 ]