打字猴:1.700457128e+09
1700457128
1700457129 ❑由容器管理单例的生命周期
1700457130
1700457131 Java EE容器或者框架级容器(如Spring)可以让对象长久驻留内存。当然,自行通过管理对象的生命期也是一个可行的办法,既然有那么多的工具提供给我们,为什么不用呢?
1700457132
1700457133 ❑状态随时记录
1700457134
1700457135 可以使用异步记录的方式,或者使用观察者模式,记录状态的变化,写入文件或写入数据库中,确保即使单例对象重新初始化也可以从资源环境获得销毁前的数据,避免应用数据丢失。
1700457136
1700457137
1700457138
1700457139
1700457140 设计模式之禅 [:1700453938]
1700457141 设计模式之禅 第8章 工厂方法模式
1700457142
1700457143 设计模式之禅 [:1700453939]
1700457144 8.1 女娲造人的故事
1700457145
1700457146 东汉《风俗通》记录了一则神话故事:“开天辟地,未有人民,女娲搏黄土做人”,讲述的内容就是大家非常熟悉的女娲造人的故事。开天辟地之初,大地上并没有生物,只有苍茫大地,纯粹而洁净的自然环境,寂静而又寂寞,于是女娲决定创造一个新物种(即人类)来增加世界的繁荣,怎么制造呢?
1700457147
1700457148 别忘了女娲是神仙,没有办不到的事情,造人的过程是这样的:首先,女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放置到大地上生长,工艺过程是没有错的,但是意外随时都会发生:
1700457149
1700457150 第一次烤泥人,感觉应该熟了,往大地上一放,哇,没烤熟!于是一个白人诞生了!(这也是缺乏经验的最好证明)
1700457151
1700457152 第二次烤泥人,上一次没烤熟,这次多烤一会儿,放到世间一看,嘿,熟过头了,于是黑人诞生了!
1700457153
1700457154 第三次烤泥人,一边烧制一边察看,直到表皮微黄,嘿,真正好,于是黄色人种出现了!
1700457155
1700457156 这个造人过程是比较有意思的,是不是可以通过软件开发来实现这个过程呢?古人云:“三人行,必有我师焉”,在面向对象的思维中,万物皆对象,是对象我们就可以通过软件设计来实现。首先对造人过程进行分析,该过程涉及三个对象:女娲、八卦炉、三种不同肤色的人。女娲可以使用场景类Client来表示,八卦炉类似于一个工厂,负责制造生产产品(即人类),三种不同肤色的人,他们都是同一个接口下的不同实现类,都是人嘛,只是肤色、语言不同,对于八卦炉来说都是它生产出的产品。分析完毕,我们就可以画出如图8-1所示的类图。
1700457157
1700457158 类图比较简单,AbstractHumanFactory是一个抽象类,定义了一个八卦炉具有的整体功能,HumanFactory为实现类,完成具体的任务——创建人类;Human接口是人类的总称,其三个实现类分别为三类人种;NvWa类是一个场景类,负责模拟这个场景,执行相关的任务。
1700457159
1700457160 我们定义的每个人种都有两个方法:getColor(获得人的皮肤颜色)和talk(交谈),其源代码如代码清单8-1所示。
1700457161
1700457162
1700457163
1700457164
1700457165 图8-1 女娲造人类图
1700457166
1700457167 代码清单8-1 人类总称
1700457168
1700457169 public interface Human{
1700457170
1700457171 //每个人种的皮肤都有相应的颜色
1700457172
1700457173 public void getColor();
1700457174
1700457175 //人类会说话
1700457176
1700457177 public void talk();
[ 上一页 ]  [ :1.700457128e+09 ]  [ 下一页 ]