
Design Pattern
yfk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
餐馆那些事之:Singleton Pattern
1. 概念 If a system only needs one instance of a class, and that instanceneeds to be accessible in many different parts of a system, you c原创 2011-08-01 23:26:17 · 1560 阅读 · 1 评论 -
餐馆那些事之:Adapter Pattern
1. 概述Adapter pattern即适配器模式,其主要用于:1)一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的那些类可以一起工作2)给一个现存的类提供一个新的接口3)包装现有类,使其能使用新的系统Adapter pattern 类图:Client:定义客户请求接口Adaptee:需要进行适配的类Adapter:适配原创 2012-02-19 21:31:37 · 1335 阅读 · 0 评论 -
餐馆那些事之:Facade Pattern
1. 概述Facade Pattern是一种结构性模式。对于一个大系统里面有多个子系统,为了避免client和各个子系统进行复杂的交互,对子系统进行封装,对外提供一个统一的接口。使子系统的使用更加简单。类图:subsystem_x:具体的工作子系统Facade:子系统封装subsystem_x:具体的工作子系统Facade:子系统封装2.实例客人到了餐馆原创 2012-02-27 20:31:11 · 1720 阅读 · 0 评论 -
餐馆那些事之:Decorator Pattern
1. 概述Decorator Pattern:提供了一种通过组合给类增加职责的方法。和通过子类给类添加责任相比,这种方式更加灵活。类图:Object:抽象接口ConcreteObject:工作类(需要添加责任的类)Decorator:维护一个指向Object的指针,从而可以通过组合的方式为ConcreteObject类添加责任ConcreteDecoratorX原创 2012-02-27 20:30:51 · 1341 阅读 · 0 评论 -
餐馆那些事之:Proxy Pattern
1. 概述Proxy Patter模式:通过对某个对象提供代理,从而控制&隔离对这个对象的访问。类图:Object:定义了Concrete_object和Proxy的公用接口,这样才能在需要使用Concrete_object的地方使用Proxy代替Concrete_object:具体实现类Proxy:Concrete_object的代理Proxy Pattern常使原创 2012-02-18 10:52:45 · 1524 阅读 · 0 评论 -
餐馆那些事之:Null Object
1. 概述在开发过程中,我们常常会越到这么一种case:向一个对象发送消息,每次都必须先检查对应的对象是否存在。如果对象存在执行相应操作,对象不存在则获取默认值或者做一些默认的操作。NULL object即使这么一种模式:通过提供NULL对象,从而使客户在向对象发送消息时,不关心对象是否存在,NULL对象中保存相应的默认值或方法。NULL object的优势个人理解:1)降低代码复原创 2012-02-16 14:44:21 · 1532 阅读 · 0 评论 -
餐馆那些事之:Mediator Pattern
1. 概述Mediator Pattern:封装了一组对象之间的交互,使得对象之间保持松耦合的关系,避免对象维护复杂的关系交互。简单的说,Mediator封装的是交互。类图:object实例之间的交互,统一由Mediator维护。2. 实例餐馆有cook和waiter,cook之间需要彼此交流配合,也需要和waiter进行交流, 例如一个厨师请另一个厨师帮忙切菜原创 2012-02-25 10:49:37 · 1411 阅读 · 0 评论 -
餐馆那些事之:State Pattern
1. 概述State Pattern即状态模式。一个简单的case:对于自动门来说,有两种状态:open和close,如果门处于open状态,如果用户再按open按钮,没有反应,如果按下close键,则门关闭。switch...case...实现:const int OPEN = 1; // door open 状态const int CLOSE = 2;// door clo原创 2012-02-23 20:49:31 · 1528 阅读 · 0 评论 -
餐馆那些事之:Visitor Pattern
1. 概述Visitor Pattern本质上是通过方法和数据分离,从而实现:1)在不影响现有数据结构的情况下,添加新的方法2)双分派(在选择一个方法的时候,不仅仅要根据消息接收者的运行时类型,还要根据参数的运行时类型)3)Recovering lost type information(一个很好的例子:http://sourcemaking.com/design_patterns原创 2012-02-21 21:02:51 · 1973 阅读 · 0 评论 -
餐馆那些事之:Command Pattern
1. 概述Composite Pattern是一种非常优雅的模式,实际使用中出现频率相当高。其通过对请求进行封装,解除了请求的发布者和具体实现者之间的耦合关系。类图:Customer:命令的发布者Command:命令的接口Concreate_command:具体命令的实现Worker:命令的具体执行者2. 实例一个顾客跑到餐馆吃饭,他告诉服务员需要点的菜原创 2012-02-14 03:04:27 · 2804 阅读 · 1 评论 -
餐馆那些事之:接口实现分离
1. 概念GOF书中提到,面向对象编程第一原则: "Program to an interface, not an implementation" ,这是接口实现分离的基本思想。我的理解: “在开发过程中,在外部用户和实现者之间加入一层接口,外部用户调用接口为其服务,实现原创 2011-07-31 20:04:17 · 1869 阅读 · 3 评论