background image

这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非
常大量的功能。

10、FACADE—我有一个专业的 Nikon 相机,我就喜欢自己手动调光圈、快门,
这样照出来的照片才专业,但

MM

 

可不懂这些,教了半天也不会。 幸好相机有

Facade 设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切
由相机自动调整,这样

MM 也可以用这个相机给我拍张照片了。

门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。
门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统
只有一个门面类,而且此门面类只有一个实例,也就是说它是一个 单例
模式。但整个系统可以有多个门面类。

11、FLYWEIGHT—每天跟 MM 发短信,手指都累死了,最近买了个新手机,可

 

以把一些常用的句子存在手机里,要用的时候,直接拿出来,在前面 加上

MM

的名字就可以发送了,再不用一个字一个字敲了。共享的句子就是
Flyweight,MM 的名字就是提取出来的外部特征,根据上下文情况使用。

享元模式:

FLYWEIGHT 在拳击比赛中指最轻量级。享元模式以共享的方

 

式高效的支持大量的细粒度对象。享元模式能做到共享的关 键是区分内蕴
状态和外蕴状态。内蕴状态存储在享元内部,不会随环境的改变而有所不
同。外蕴状态是随环境的改变而改变的。外蕴状态不能影响内蕴状态,它

 

们是 相互独立的。将可以共享的状态和不可以共享的状态从常规类中区分
开来,将不可以共享的状态从类里剔除出去。客户端不可以直接创建被共

 

享的对象,而应当使用 一个工厂对象负责创建被 共享的对象。享元模式大
幅度的降低内存中对象的数量。

12、PROXY—跟 MM

在网上聊天,一开头总是

hi,

你好

,“

”“

你从哪儿来呀? 你

”“

多大了? 身高多少呀? 这些话,真烦人,写个程序做为我的

Proxy 吧,凡

是接收到这些话都设置好了自动的回答,接收到其他的话时再通知我回答,怎
么样,酷吧。

代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控

 

制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一 个机
构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理
对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主

 

题对象与真实 主题对象。代理模式可以并不知道真正的被代理对象,而仅
仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,

 

被代理对象必须有系统的其他角 色代为创建并传入。

行为模式

13、CHAIN OF RESPONSIBLEITY—晚上去上英语课,为了好开溜坐到了最后
一排,哇,前面坐了好几个漂亮的

MM

哎,找张纸条,写上

Hi,可以做我的女