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