c++一句话设计模式

#针对接口编程,而不是针对实现编程

#优先考虑使用对象组合,而不是继承

#考虑设计中什么应该是可变的,在不引起重新设计的前提下改变

#只在一个地方实现,只实现一次

 

创建型:

Factory【工厂模式】:顾名思义,声明一个创建对象的接口,封装了对象的创建过程。

AbstactFactory【抽象工厂模式】:我更喜欢称呼为生产线模式,通过继承后可以在不同的生产线创建不同类别的对象。

Singleton【单例模式】:创建全局的对象,有时需要double check。

Builder【建造模式】:创建对象很复杂的时候,需要将对象的创建和表示分离,一步一步的进行创建。

Prototype【克隆(元型)模式】:通过已经存在的对象,创建新的对象。Clone。

 

结构型:

Bridge【桥接模式】:将抽象和实现分离,两个部分可以独立进行修改。【将一组实现与使用他们的对象分离】

Decorator【装饰模式】:以组合方式替代继承,要装饰的子类和装饰者有共同的父类,可以发挥多态的威力。

Composite【组合模式】:完美解决递归构建树状组合结构。

Flyweight【享元模式】:创建大量轻量级细粒度对象,减少空间的让费,例如文档编辑器,预先创建a,1,2。。。

Proxy【代理模式】:创建开销大的对象,如大图片,虚代理,virtual proxy;为网络对象创建一个局部代理,远程代理,remote proxy;控制不同用户的不同层次的权限,保护代理,protection proxy;封装创建的过程,create proxy;

Facecade【外观模式】:为复杂的子系统,提供简介的外部接口;

Adapter【适配器模式】:使控制范围之外的一个对象符合某类统一的接口,为一个功能有效的类提供适应外部要求的接口,通常用在适应现有设计模式需要的多态;

注-Facecade模式简化了接口,Adapter模式则将一个类的现有接口转换成另外一个接口。

 

行为型:

框架是相同的,但是框架下面每一个逻辑是不同的

Template【模版方法模式】:将逻辑(算法)放在抽象类中,并定义好细节的接口,子类中实现细节

Strategy【策略模式】:将逻辑(算法)封装在一个类中,并采用组合的方式使用,保持框架不变

以上两个模式解决的问题是类似的,一个是采用继承的方式,一个是采用组合(委托)的方式。

State【状态模式】:FSM(有限状态自动机),将状态逻辑与动作实现分离,状态-事件-动作【状态机】

Observer【观察者模式】:MVC,一个数据变化,所有观察者都可以知道其变化。

Memento【“后悔药”模式(备忘录)】:在不破坏封装的前提下,捕获并保存类的内部状态,可以更加状态进行恢复操作。

Mediator【中介模式】:在大规模的系统中,将对象间的交互和通信进行封装,作为中介者,对象间的交互通过中介来实现。

Command【命令模式】:将请求封装到一个对象中(command),将请求的接受者存放到请求的实现中,实现消息接收和处理的解耦。

Vistor【访问者模式】:将变更封装到一个类中(访问操作),待更改类提供一个接收接口,减少需求变更的影响。

Chain of Resopnsibility【指责链模式】:基于消息,事件驱动;将处理请求对象成链,请求传递中进行处理,直到有对象处理了该请求;MFC。

Iterator【迭代器模式】:stl vector  list。

Interpreter【解释者模式】:解释器框架

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值