装饰模式装饰模式以对客户端透明的方式扩展对象的功能是继承关系的一个替代方案提供比继承更多的灵活性动态给一个对象增加功能这些功能可以再动态的撤消增加由一些基本功能的排列组合而产生的非常大量的功能
FACADE—我有一个专业的Nikon相机我就喜欢自己手动调光圈快门这样照出来的照片才专业但MM可不懂这些教了半天也不会幸好相机有Facade设计模式把相机调整到自动档只要对准目标按快门就行了一切由相机自动调整这样MM也可以用这个相机给我拍张照片了
门面模式外部与一个子系统的通信必须通过一个统一的门面对象进行门面模式提供一个高层次的接口使得子系统更易于使用每一个子系统只有一个门面类而且此门面类只有一个实例也就是说它是一个单例模式但整个系统可以有多个门面类
FLYWEIGHT—每天跟MM发短信手指都累死了最近买了个新手机可以把一些常用的句子存在手机里要用的时候直接拿出来在前面加上MM的名字就可以发送了再不用一个字一个字敲了共享的句子就是FlyweightMM的名字就是提取出来的外部特征根据上下文情况使用
享元模式FLYWEIGHT在拳击比赛中指最轻量级享元模式以共享的方式高效的支持大量的细粒度对象享元模式能做到共享的关键是区分内蕴状态和外蕴状态内蕴状态存储在享元内部不会随环境的改变而有所不同外蕴状态是随环境的改变而改变的外蕴状态不能影响内蕴状态它们是相互独立的将可以共享的状态和不可以共享的状态从常规类中区分开来将不可以共享的状态从类里剔除出去客户端不可以直接创建被共享的对象而应当使用一个工厂对象负责创建被共享的对象享元模式大幅度的降低内存中对象的数量
PROXY—跟MM在网上聊天一开头总是hi你好你从哪儿来呀?你多大了?身高多少呀?这些话真烦人写个程序做为我的Proxy吧凡是接收到这些话都设置好了自动的回答接收到其他的话时再通知我回答怎么样酷吧
代理模式代理模式给某一个对象提供一个代理对象并由代理对象控制对源对象的引用代理就是一个人或一个机构代表另一个人或者一个机构采取行动某些情况下客户不想或者不能够直接引用一个对象代理对象可以在客户和目标对象直接起到中介的作用客户端分辨不出代理主题对象与真实主题对象代理模式可以并不知道真正的被代理对象而仅仅持有一个被代理对象的接口这时候代理对象不能够创建被代理对象被代理对象必须有系统的其他角色代为创建并传入
行为模式
CHAIN OF RESPONSIBLEITY—晚上去上英语课为了好开溜坐到了最后一排哇前面坐了好几个漂亮的MM哎找张纸条写上Hi可以做我的女朋友吗?如果不愿意请向前传纸条就一个接一个的传上去了糟糕传到第一排的MM把纸条传给老师了听说是个老处女呀快跑!
责任链模式在责任链模式中很多对象由每一个对象对其下家的引用而接
起来形成一条链请求在这个链上传递直到链上的某一个对象决定处理此请求客户并不知道链上的哪一个对象最终处理这个请求系统可以在不影响客户端的情况下动态的重新组织链和分配责任处理者有两个选择承担责任或者把责任推给下家一个请求可以最终不被任何接收端对象所接受
COMMAND—俺有一个MM家里管得特别严没法见面只好借助于她弟弟在我们俩之间传送信息她对我有什么指示就写一张纸条让她弟弟带给我这不她弟弟又传送过来一个COMMAND为了感谢他我请他吃了碗杂酱面哪知道他说我同时给我姐姐三个男朋友送COMMAND就数你最小气才请我面
命令模式命令模式把一个请求或者操作封装到一个对象中命令模式把发出命令的责任和执行命令的责任分割开委派给不同的对象命令模式允许请求的一方和发送的一方独立开来使得请求的一方不必知道接收请求的一方的接口更不必知道请求是怎么被接收以及操作是否执行何时被执行以及是怎么被执行的系统支持命令的撤消
INTERPRETER—俺有一个《泡MM真经》上面有各种泡MM的攻略比如说去吃西餐的步骤去看电影的方法等等跟MM约会时只要做一个Interpreter照着上面的脚本执行就可以了
解释器模式给定一个语言后解释器模式可以定义出其文法的一种表示并同时提供一个解释器客户端可以使用这个解释器来解释这个语言中的句子解释器模式将描述怎样在有了一个简单的文法后使用模式设计解释这些语句在解释器模式里面提到的语言是指任何解释器对象能够解释的任何组合在解释器模式中需要定义一个代表文法的命令类的等级结构也就是一系列的组合规则每一个命令对象都有一个解释方法代表对命令对象的解释命令对象的等级结构中的对象的任何排列组合都是一个语言
ITERATOR—我爱上了Mary不顾一切的向她求婚
Mary想要我跟你结婚得答应我的条件
我什么条件我都答应你说吧
Mary我看上了那个一克拉的钻石
我我买我买还有吗?
Mary我看上了湖边的那栋别墅
我我买我买还有吗?
Mary你的小弟弟必须要有cm长
我脑袋嗡的一声坐在椅子上一咬牙我剪我剪还有吗?
……
迭代子模式迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象多个对象聚在一起形成的总体称之为聚集聚集对象是能够包容一组对象的容器对象迭代子模式将迭代逻辑封装到一个独立的子对象中从而与聚集本身隔开迭代子模式简化了聚集的界面每一个聚集对象都可以有一个或一个以上的迭代子对象每一个迭代子的迭代状态可以是彼此独立的迭代算法可以独立于聚集角色变化
[] [] []