关闭

《Design Pattern》读书笔记

标签: design-pattern
454人阅读 评论(0) 收藏 举报
分类:

直接上图

设计模式空间

个人理解:

Abstract Factory

比喻 : 产生组装为不同界面风格的产品的各个组件
重点 :
1. 父类为纯虚类
2. 注重水平扩展, 派生出不同风格的组件, 但是不注重添加新功能的组件。
3. 组装产品任务不是Abstract Factory的。 只负责生产组件。

Factory Method

不同的子类产生不同类型的产品
1. Factory 负责产生最终的产品。
2. 除去构造组件组装产品,Factory可以有其他具体逻辑。
3. 父类虚函数往往有默认行为。
4. 注重垂直扩展,产生新特征行功能的组件类组装产品。

Build Method

同样的构造过程可以产生不同的产品, 产品组件之间的差距之大以至于没有相同的继承体系。
1. 组件之间不必须有相同的构造体系。
2. 产品通过builder获取。
3. 可以产生不同的build过程。

PrototypeSingleton ~~


Adaptor

  1. 既可以基于组合 , 也可以基于继承。
  2. 并不产生新的功能, 只是将不符合当前接口格式但是实现了当前需要功能的接口包装成符合当前接口格式的接口。

Bridge

抽象接口和实现的分离( 基于组合)
假设接口类型m种, 每个接口实现类型 n 种 , 则将继承体系的复杂度由至少 m x n 降低到 m 种接口 + 每个 m x n 种实现,对lib的设计者有效, 这样使用者就不需要关心实现细节 。

Composite

同一继承体系下的对象可以相互包含。
1. 形成树状结构, 支持递归调用
2. 简化客户程序, 不关心具体类型, 遍历执行。
3. 便于添加新类型。

Decorator

同一父类分出两个继承体系, 其中一个体系(修饰物)组合另一个(核心)。
1. 复杂度由 m x n 降为 m +n 。
2. 便于在不修改核心的情况下修改修饰物。
3. 基于同一父类是的修饰物可以方便操作核心。

Factor

Factor 之于 子系统 == shell 之于 内核 + 工具脚本们。

Flyweight

处理大量对象但重复性高的情况 。

Proxy

组合资源消耗型(类似) 的对象, 新的对象仅在必须且可行的时候才使用资源消耗型对象, 其余时候仅仅返回个需假的皮囊。


Chain of responsibility

类似C++ exception的处理方式, 遇到消息, 自己处理,自己不能处理, 就按照预定的规则交给责任链的下一个。

Command

自己不知道如何处理消息, 交给自己组合的处理人员。

Mediator

中控, 小的组件各自独立, 中控负责他们交互时候的逻辑。 解耦组件, 便于重用。

Memetno

按照既定策略记录对于对象的数据, 便于恢复 。

Observe

MVC 典型, 适合一对n的场合 。 改变则通知所有观察者。

Visitor

在类之外为类添加功能的办法 , Visitor 一一访问集合的对象, 进行需要的操作。

Iterator , Template , state ~~




1
0
查看评论

Design Pattern Explained 读书笔记四——Adapter

What?Convert the interface of a class into another interface that the clients expect. Adapter lets classes work together that could not otherwise be...
  • lemon89
  • lemon89
  • 2015-07-28 23:50
  • 511

Proxy Design Pattern 代理设计模式

代理设计模式,这个模式很多用于服务器客户端之类的,上网也经常使用代理之类的,想起来感觉是很复杂的,不过这个设置模式本身是很简单的。 就是一个类调用另外一个类的函数,客户调用的是一个类,而实际的工作是由另外一个类做的。 体现这个设计模式的代码: #include class RealObj ...
  • kenden23
  • kenden23
  • 2014-07-13 09:22
  • 1133

C++版的Head First Design Pattern

       前 些天从sourceforge上down下一个C++版的Head First Design Pattern,一直都没有仔细看过,也不知道HeadFirstDesignPattern是一本以Java为例的design patt...
  • iinel
  • iinel
  • 2007-11-16 10:13
  • 1580

设计模式之---单例模式(Singleton Design Pattern)

场景 对象只要利用自己的属性完成了自己的任务.那该对象就是承担了责任。 除了维持了自身的一致性,该对象无需承担其他任何责任。 如果该对象还承担着其他责任,而其他对象又依赖于该特定对象所承担的贵任,我们就需要得到该特定对象。 就像我和我的女朋友去超市购物使用的购物车一样。 意图 将类的责任...
  • u010878994
  • u010878994
  • 2016-04-26 01:19
  • 585

几本Design Pattern的书

<br />大话设计模式设计模式--基于C#的工程化实现及扩展(china-pub 首发) First head Design Pattern<br />设计模式之禅
  • tuwen
  • tuwen
  • 2011-03-06 11:51
  • 979

Design Pattern: Proxy 模式

学习是分享和合作式的! 转载请注明出处:http://blog.csdn.net/wdzxl198/article/details/10472999; 文章摘自: http://www.riabook.cn/doc/designpattern/; 在 Gof 的书中对Proxy模式的目的...
  • wdzxl198
  • wdzxl198
  • 2013-08-28 21:00
  • 848

Head First Design Pattern - 学习笔记

1. 设计模式的本质,就是针对具体问题,以某种方式将变化的部分抽取并封装起来,使其独立于其他不变的部分,不对其造成影响。 2. 设计原则一:封装变化。找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起; 3. 设计原则二:针对接口编程,而不是针对实现编程; 4. 设...
  • u010665051
  • u010665051
  • 2015-06-27 09:53
  • 521

java设计模式大全 Design pattern samples in Java(最经典最全的资料)

Design pattern samples in Java.Build status:IntroductionDesign patterns are formalized best practices that the programmer can use to solve common prob...
  • changemyself
  • changemyself
  • 2015-06-19 13:10
  • 10391

设计模式 - 迭代器模式(iterator pattern) 详解

迭代器模式(iterator pattern) 详解本文地址: http://blog.csdn.net/caroline_wendy迭代器模式(iterator pattern) : 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露其内部的表示;建立迭代器接口(iterator...
  • u012515223
  • u012515223
  • 2014-06-27 14:03
  • 1911

.NET Design Pattern Framework 4.5 +QQ:386184911

What do I get with the .NET Pattern FrameworkTM? The .NET Design Pattern Framework 4.5 is actually 10 products in one -- each filled with...
  • liao00001
  • liao00001
  • 2014-09-28 11:00
  • 1035
    个人资料
    • 访问:86475次
    • 积分:1815
    • 等级:
    • 排名:千里之外
    • 原创:80篇
    • 转载:13篇
    • 译文:3篇
    • 评论:14条
    最新评论