摘要: 什么是代理模式?官方:为其他对象提供一种代理以控制对这个对象的访问。个人理解:大家都用过FQ软件看看中国新闻吧,其实这就是典型的代理模式,通过代理我们可以访问被强掉的网站。也就是控制你的访问。这和代理模式中的控制对象的访问不是一个意思吗。什么时候使用代理模式?1.耗费时间长。2.耗费计算机资源非常大。3.存在于远程服务器上的对象。4.代理也可以用来验证访问权限。举例:https://github.... 阅读全文
posted @ 2013-12-09 11:05 阿什顿发斯蒂芬 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 什么是享元模式?官方:运用共享技术有效地支持大量细粒度的对象。个人理解:减少多个类似对象的重复使用,将不同的部分抽离,将相似的部分共享。什么时候使用享元模式?1.应用中有很多相似对象。2.对象的多个状态可以放到外部而轻量化。3.对象不依赖对象标识,因为共享对象不能提供唯一的标识。举例:https://github.com/y279336671/DesignPatternsForObjective-... 阅读全文
posted @ 2013-12-08 22:39 阿什顿发斯蒂芬 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 什么是命令模式?官方:将一个请求封装成一个对象,从而使你可以用不同的请求对客户端进行参数化。对请求排队或者记录日志,以支持可撤销的操作。个人理解:命令模式就相当于撸串子时点菜的过程。把你要吃什么的请求封装在一个菜单上交给服务员,服务员按照点菜的顺序一次上菜。当然你也可以撤销你的菜单不吃了。此时服务员相当于Invoker 而烤肉串者相当于Receiver。你就就是Command。什么时候使用命令模式... 阅读全文
posted @ 2013-12-08 20:21 阿什顿发斯蒂芬 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 什么是策略模式?官方:定义一系列算法,把它们一个一个封装起来,并且使它们可以互相替换。本模式是的算法可以独立于使用它的客户而变换。个人理解:策略模式是对算法的封装和整理,主要用途是减少类内部复杂的if else 语句。什么时候使用策略模式?1.出现多个条件语句的时候,可以用策略模式。2.需要算法的各种变体。3.需要避免把复杂的算法和结构暴露给客户端。举例:https://github.com/y2... 阅读全文
posted @ 2013-12-08 14:59 阿什顿发斯蒂芬 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 什么是模版方法?官方:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使子类可以重新定义算法的某些步骤而不改变算法的结构。个人理解:模版方法没必要刻意去理解,平时的编码过程中不知不觉就会用到。其实就是对算法的进一步抽象,把具有共同特点的算法抽象出共有的接口。什么时候使用模版方法?1.对多个具备共同特点的算法的抽象。2.一次性实现算法的不同部分,并把可变的部分放到子类中去实现。举例:h... 阅读全文
posted @ 2013-12-08 12:56 阿什顿发斯蒂芬 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 什么是责任链模式?官方:使多个对象有机会处理请求,从而避免请求的发送者和接受者发生耦合。此模式将对象连成一条链,并沿着连发送请求,直到有一个对象处理它为止。个人理解:小伙伴们站成一排,老师一个一个的问:谁是第一个上的。都说不是自己,直到天一勇敢的承认。在这个过程中前几个小伙伴都没有承认,这样老师的问题就被传递下去,直到有人响应,当时老师也并不知道谁是第一个。但是每个对象都知道谁是第一个只是都没有响... 阅读全文
posted @ 2013-12-07 20:36 阿什顿发斯蒂芬 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 什么是装饰模式?官方:动态给一个对象添加一些职责。就扩展功能来说,装饰模式比生成子类更为灵活。个人理解:装饰模式就可以通过字面意思理解,用来装饰对象的模式。就相当于你有一张照片,可以给照片更换不同的相框来达到不同的显示效果。装饰模式的本意就是不改变本体的情况先给对象扩展新功能。什么时候使用装饰模式?1.需要对类进行扩展,但是生成子类又过于复杂的情况下。2. 不想影响对象的结构,并且为对象进行扩展。... 阅读全文
posted @ 2013-12-07 13:53 阿什顿发斯蒂芬 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 什么是迭代器模式?官方:提供一种方法顺序访问聚合对象中的各个元素,而又不暴露该对象的内部表示。个人理解 :这个没法再理解了。什么时候使用迭代器模式?1.需要访问对象中的每一个元素。2.需要多种遍历方法。3.需要提供一个统一的接口来遍历对象中的每一个元素。举例:https://github.com/y279336671/DesignPatternsForObjective-C/tree/master... 阅读全文
posted @ 2013-12-06 10:07 阿什顿发斯蒂芬 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 什么是组合模式?官方:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使用户使用单独对象和组合对象具有一致性。个人理解:组合模式就相当于一个大家族,每个人都是家族中的一部分,整个家族就是一个整体,他们的一致性就是具有相同的姓氏,但是又可以成为单独的个体。什么时候使用组合模式?1.忽略单个对象和整体的不同,统一处理组合的情况下。2.想获得独享抽象的树形结构。举例:https://gith... 阅读全文
posted @ 2013-12-05 15:02 阿什顿发斯蒂芬 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 什么是观察者模式?官方:观察者模式定义了一对多的依赖关系,让多个观察者同时监听同一个主题对象。这个主题对象状态发生变化时,会通知所有观察对象更新自己。个人理解:观察者模式相当于在团体作案时,有一个放风的,当放风的说有警察来了,实施作案的人马上撤离。主要用于维护各个对象的属性一致性行,就是大家一起快跑。什么时候使用观察者模式?1.当一个对象的改变需要改变其他对象,而又不知道需要改变多少的情况下。2.... 阅读全文
posted @ 2013-12-04 17:29 阿什顿发斯蒂芬 阅读(306) 评论(0) 推荐(0) 编辑