Skip to content

Latest commit

 

History

History
35 lines (24 loc) · 1.09 KB

Design Pattern.mkd

File metadata and controls

35 lines (24 loc) · 1.09 KB

#设计模式

===

##组合模式 组合模式,Composite Pattern,是一个非常巧妙的模式。几乎所有的面向对象系统都应用到了组合模式.
组合模式可以用'部分-整体'的形式表示.通过Add,Remove,GetChild等方法来操作整体中的部分.

组合模式

  1. 结构型模式
  2. 定义了包含基本对象和组合对象的类层次结构。这种结构能够灵活控制基本对象与组合对象的使用。
  3. 简化客户代码。基本对象和组合对象有一致性,用户不用区分它们。
  4. 使得更容易添加新类型的组件。
  5. 使你的设计变得更加一般化。

===

##策略模式 定义一系列算法,把他们独立封装起来,并且这些算法之间可以相互替换。策略模式主要是管理一堆有共性的算法,客户端可以根据需要,很快切换这些算法,并且保持可扩展性.

策略模式实现起来,主要需要3部分:抽象接口、实现算法、上下文

最简单的策略模式的实现方式,按照功能分为3个部分,定义算法抽象接口,然后根据具体算法实现这些接口,最后需要定义一个上下文对象。这里的上下文对象主要用来切换算法,上下文对象里面也是针对接口编程,具体算法实现被封装了

  1. 避免多重条件语句
  2. 更好的扩展性
  3. 客户必须了解每种策略的不同
  4. 增加了对象数目
  5. 只适合扁平的算法结构

===

##单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。