●工厂模式
⊙客户类和工厂类分开,客户需求产品时,向工厂提出请求即可(传入参数args)。
◆是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
●建造模式
⊙将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。
◆建造模式使得 产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。
●工厂方法模式(代工 规范标准)
⊙核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色
◆仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节
●原始模型模式
⊙通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。
◆每 一个类都必须配备一个克隆方法
●单例模式
⊙单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。
◆单例模式只应在有真正的 “单一实例”的需求时才可使用
●适配器(变压器)模式
⊙把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作
◆适配类可以根据参数返还一个合适的实例给客户端
>>强调在A B对象之间的调和角色,各自的角色特色已经固定的情况之下。
●桥接模式
⊙将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的
◆抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。
●合成模式
⊙将对象组织到树结构中,可以用来描述整体与部分的关系
◆合成模式把部分与整体的关系用树结构表示出来
●装饰模式
⊙饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性
◆增加由一些基本功能的排列组合而产生的非常大量的功能
●门面模式(Facade 外观模式)
⊙外部与一个子系统的通信必须通过一个统一的门面对象进行,门面模式提供一个高层次的接口,使得子系统更易于使用。
◆每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。
>>在现有的多个子系统基础之上构建的对外API。
>>
●享元模式
⊙以共享的方式高效的支持大量的细粒度对象
◆区分内蕴状态和外蕴状态,内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。
●代理模式
⊙给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用
◆某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。
●责任链模式
⊙很多对象由每一个对象对其下家的引用而接起来形成一条链
◆处理者有两个选择:承担责任或者把责任推给下家,一个请求可以最终不被任何接收端对象所接受。
●命令模式(菜单)
⊙命令模式把一个请求或者操作封装到一个对象中。
◆命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的 对象。
允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口。
●解释器模式
⊙给定一个语言后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子
◆
●迭代子模式
⊙迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。
◆
●调停者模式
⊙调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。
◆将多对多的相互作用 转化为一对多的相互作用。
●备忘录模式
⊙备忘录对象是一个用来存储另外一个对象内部状态的快照的对象
◆
●观察者模式
⊙观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。
◆这个主题对象在状态上发生 变化时,会通知所有观察者对象,使他们能够自动更新自己
>>我关注哪些人?我被那些人关注?
>>单纯的观察者而言,只是静静的读取数据的变化。(微信关注 QQ关注)
>>订阅-发布的模式
●状态模式
⊙状态模式允许一个对象在其内部状态改变的时候改变行为
◆
●策略模式
⊙策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换
◆
●模板方法模式
⊙模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑
◆不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。
先制定一个顶级逻辑框架,而将逻 辑的细节留给具体的子类去实现。
●访问者模式
⊙问者模式的目的是封装一些施加于某种数据结构元素之上的操作
◆访问者模式使得增加新的操作变的很容易,就是增加一个新的访问者类
访问者模式将有关的行为集中到一个访问者对象 中,而不是分散到一个个的节点类中
C++之设计模式列表简括
最新推荐文章于 2023-03-21 18:04:29 发布