设计模式原则和分类

设计模式原则和分类

从今天开始学习设计模式,主要参考博览网的C++设计模式教程

设计模式原则

1.依赖倒置原则(DIP,Dependence Inversion Principle )
- 高层次的模块(稳定)不应该依赖于低层次的模块(变化),二者都应该依赖于抽象。
- 抽象(稳定)不应该依赖于实现细节,实现细节应该依赖于抽象。

我从c++的角度来理解:高层次的模块指基类,低层次的模块是指派生类,基类不应该依赖于派生类;抽象是指基类中的接口,基类派生类都应该依赖于接口,实现细节是指接口的具体实现,接口的具体实现当然应该依赖于接口本身。

2.开放封闭原则(OCP,Open Closed Principle)
- 对扩展开放,对更改封闭。

对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改,因为修改的代价太大了,可能牵一发而动全身。

3.单一职责原则(SRP:Single responsibility principl)
- 一个类应该有且仅有一个引起它变化的原因。
- 变化的方向隐含这着类的职责。

这个原则不是很理解,等哪天理解深刻了,再来写。

4.里氏替换原则(LSP,Liskov Substitution Principle )
- 派生类必须能够替换它们的基类。

在c++中,public继承意味着派生类和基类是”is a”关系,也就意味着适用于基类身上的每一件事也一定适用于派生类,基类出现的地方,派生类就可以代替其出现。

5.接口隔离原则(ISP,Interface Segregation Principle )
- 不应该强迫客户端依赖它们不需要的接口或者方法。
- 接口应该小而完备,一个类对另一个类的依赖应该建立在最小的接口上。

设计模式分类:

一.从目的来看:

二.从封装变化角度对模式分类

  • 1.组件协作:
    •模板模式 Template Method
    •观察者模式 Observer
    •策略模式 Strategy

  • 2.单一职责:
    •装饰器模式 Decorator
    •桥接模式 Bridge

  • 3.对象创建:
    •工厂模式 Factory Method
    •抽象工厂模式 Abstract Factory
    •原型模式 Prototype
    •建造者模式 Builder

  • 4.对象性能:
    •单例模式 Singleton
    •享元模式 Flyweight

  • 5.接口隔离:
    •外观模式 Facade
    •代理模式 Proxy
    •中介者模式 Mediator
    •适配器模式 Adapter

  • 6.状态变化:
    •备忘录模式 Memento
    •状态模式 State

  • 7.数据结构:
    •组合模式 Composite
    •迭代器模式 Iterator
    •责任链模式 Chain of Resposibility

  • 8.行为变化:
    •命令模式 Command
    •访问者模式 Visitor

  • 9.领域问题:
    •解释器模式 Interpreter

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值