随笔分类 -  设计模式

1 2 下一页

Interpreter Pattern
摘要:1.Interpreter模式的目的就是提供一个一门定义语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子。2.Interpreter模式结构图3.实现 1 #ifndef _CONTEXT_H_ 2 #define _CONTEXT_H_ 3 4 class Context 5 {... 阅读全文

posted @ 2015-07-24 15:55 那个人好像一条狗 阅读(296) 评论(0) 推荐(0) 编辑

Iterator Pattern
摘要:1.Iterator模式用来解决对一个聚合对象的遍历问题,将对聚合的遍历封装到一个类中进行,这样就避免了暴露这个聚合对象的内部表示的可能.2.Iterator 模式结构图3.实现 1 #ifndef _AGGREGATE_H_ 2 #define _AGGREGATE_H_ 3 4 class ... 阅读全文

posted @ 2015-07-24 11:56 那个人好像一条狗 阅读(200) 评论(0) 推荐(0) 编辑

Chain of Responsibility Pattern
摘要:1.Chain of Responsibility模式:将可能处理一个请求的对象链接成一个链,并将请求在这个链上传递,直到有对象处理该请求(可能需要提供一个默认处理所有请求的类,例如MFC中的CwinApp类)。2.Chain of Responsibility Pattern 结构图3.实现 1 ... 阅读全文

posted @ 2015-07-24 11:32 那个人好像一条狗 阅读(183) 评论(0) 推荐(0) 编辑

Visitor Pattern
摘要:1.Visitor模式:将更新(变更)封装到一个类中(访问操作),并由待更改类提供一个接收接口,则可在不破坏类的前提下,为类提供增加新的新操作。2.Visitor模式结构图Visitor模式的关键是双分派(Double-Dispatch)的技术:Accept()操作是一个双分派的操作,具体调用哪个A... 阅读全文

posted @ 2015-07-23 18:33 那个人好像一条狗 阅读(225) 评论(0) 推荐(0) 编辑

Command Pattern
摘要:1.Command模式通过将请求封装到一个对象(Command)中,并将请求的接受者存放到具体的ConcreteCommand类中(Receiver)中,从而实现调用操作的对象和操作的具体实现者之间的解耦。2.Command 模式结构图3.实现 1 #ifndef _RECEIVER_H_ 2 #... 阅读全文

posted @ 2015-07-23 17:40 那个人好像一条狗 阅读(186) 评论(0) 推荐(0) 编辑

Mediator Pattern
摘要:1.Mediator PatternMediator模式将对象间的交互和通讯封装在一个类中,各个对象间的通信不必显示去声明和引用,将多对多的通信转化为一对多的通信,大大降低了系统的复杂性能。通过Mediator,各个Colleage就不必维护各自通信的对象和通信协议,降低了系统的耦合性。Mediat... 阅读全文

posted @ 2015-07-23 15:55 那个人好像一条狗 阅读(263) 评论(0) 推荐(0) 编辑

Memento Pattern
摘要:1.Memento 模式的关键是在不破坏封装的前提下,捕获并保存一个类的内部状态,这样就可以利用该保存的状态实施恢复操作。2.Memento 模式结构图3.实现 1 #ifndef _MEMENTO_H_ 2 #define _MEMENTO_H_ 3 4 #include 5 using ... 阅读全文

posted @ 2015-07-23 14:49 那个人好像一条狗 阅读(205) 评论(0) 推荐(0) 编辑

Observer Pattern
摘要:1.Observer模式要解决的问题为:建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步改变.2.Observer Pattern 结构图 注:这里的目标Subject提供依赖于它的观察者Observer的注册(Attach)... 阅读全文

posted @ 2015-07-23 11:51 那个人好像一条狗 阅读(266) 评论(0) 推荐(0) 编辑

State Pattern
摘要:1.每个人、事物在不同的状态下会有不同表现(动作),而一个状态又会在不同的表现下转移到下一个不同的状态(State).State Pattern 将每一个分支都封装到独立的类中,将状态逻辑和动作实现进行分离。提高了系统的扩展性和可维护性。2.State Pattern结构图3.实现:如果代码看的不懂... 阅读全文

posted @ 2015-07-22 18:29 那个人好像一条狗 阅读(210) 评论(0) 推荐(0) 编辑

Strategy Pattern
摘要:1.Strategy模式和Template模式要解决的问题是相同(类似)的,都是为了给业务逻辑(算法)具体实现和抽象接口之间的解耦。Strategy模式将逻辑(算法)封装到一个类(Context)里面,通过组合的方式将具体算法的实现在组合对象中实现,再通过委托的方式将抽象接口的实现委托给组合对象实现... 阅读全文

posted @ 2015-07-22 15:33 那个人好像一条狗 阅读(191) 评论(0) 推荐(0) 编辑

Template Pattern
摘要:1.Template模式解决的问题:对于某一个业务逻辑在不同的对象中有不同的细节实现,但是逻辑的框架是相同的。将逻辑框架放在抽象基类中,并定义好细节的接口,子类中实现细节。Template模式利用多态的概念实现算法细节和高层接口的松耦合。2.Template Pattern 结构图3.实现 1 #i... 阅读全文

posted @ 2015-07-22 14:08 那个人好像一条狗 阅读(164) 评论(0) 推荐(0) 编辑

Proxy Pattern
摘要:1.Proxy Pattern最大的好处就是实现了逻辑和实现的彻底解耦。2.Proxy Pattern结构图3.实现 1 #ifndef _PROXY_H_ 2 #define _PROXY_H_ 3 4 class Subject 5 { 6 public: 7 virtual ... 阅读全文

posted @ 2015-07-20 18:41 那个人好像一条狗 阅读(161) 评论(0) 推荐(0) 编辑

Facade Pattern
摘要:1.Facade 模式在高层组合封装了子系统的接口,解耦了系统。隐藏了子系统的复杂性,使其更易使用。2.Facade 模式结构图3.实现 1 #ifndef _FACADE_H_ 2 #define _FACADE_H_ 3 4 class Subsystem1 5 { 6 public: 7 ... 阅读全文

posted @ 2015-07-20 18:19 那个人好像一条狗 阅读(180) 评论(0) 推荐(0) 编辑

Flyweight Pattern
摘要:1.Flyweight 模式以共享的方式高效的支持大量的细粒度对象,对象分为内部状态、外部状态。将可以被共享的状态作为内部状态存储在对象中,而外部状态在适当的时候作为参数传递给对象。当以下所有的条件都满足时,可以考虑使用享元模式:一个系统有大量的对象。这些对象耗费大量的内存。这些对象的状态中的大部分... 阅读全文

posted @ 2015-07-20 17:55 那个人好像一条狗 阅读(208) 评论(0) 推荐(0) 编辑

Composite Pattern
摘要:1.将对象组合成树形结构以表示“部分--整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。2.Composite 模式结构图3.实现 1 #ifndef _COMPONENT_H_ 2 #define _COMPONENT_H_ 3 4 class Component 5... 阅读全文

posted @ 2015-07-20 16:30 那个人好像一条狗 阅读(157) 评论(0) 推荐(0) 编辑

Decorator Pattern
摘要:1.Decorator 模式通过组合的方式提供了一种给类增加职责(操作)的方法。2.Decorator模式结构图3.实现 1 #ifndef _DECORATOR_H_ 2 #define _DECORATOR_H_ 3 4 class Component 5 { 6 public: 7 ... 阅读全文

posted @ 2015-07-20 15:22 那个人好像一条狗 阅读(236) 评论(0) 推荐(0) 编辑

Adapter Pattern
摘要:1.Adapter模式用来实现将一个类(第三方库)的接口转换为客户(购买使用者)希望的接口。Adapter模式有两种类别:类模式、对象模式。类模式采用继承的方式复用Adaptee的接口,对象模式通过组合的方式实现Adaptee的复用。2.Adapter模式结构图:3.类模式实现 1 #ifndef ... 阅读全文

posted @ 2015-07-17 18:11 那个人好像一条狗 阅读(230) 评论(0) 推荐(0) 编辑

Bridge Pattern
摘要:1.Bridge Pattern :使用组合的方式将“抽象”和“实现”彻底的解耦。这里的实现不是指继承基类,实现基类接口,而是指通过对象的组合实现用户的需求。面向对象分析和设计中的原则: Favor Compsition Over Inheritance.2.Bridge Pattern 模式结构图... 阅读全文

posted @ 2015-07-17 17:03 那个人好像一条狗 阅读(253) 评论(0) 推荐(0) 编辑

Builder Pattern
摘要:1.Builder模式解决这样的问题:当要创建的对象很复杂的时候(通常是由很多其他的对象组合而成),把复杂对象的创建过程和这个对象的表示(展示)分离开来,这样做的好处就是通过一步步的进行复杂对象的构建,由于在每一步的构造过程中可以引入参数,使得经过相同的步骤创建最后得到的对象的展示不一样。2.Bui... 阅读全文

posted @ 2015-07-17 16:00 那个人好像一条狗 阅读(690) 评论(0) 推荐(0) 编辑

AbstractFactory Pattern
摘要:AbstractFactory模式用来解决这类问题:要创建一组相关或者相互依赖的对象。AbstractFactory Pattern结构图实现: 1 #ifndef _PRODUCT_H_ 2 #define _PRODUCT_H_ 3 class AbstractProductA 4 { 5... 阅读全文

posted @ 2015-07-17 11:54 那个人好像一条狗 阅读(160) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示