设计模式基本原则和分类

设计模式六个基本原则

1.单一职责
2.开闭原则
3.里氏替换
4.依赖倒转
5.接口隔离
6.迪米特法则(最少知识原则)

设计模式分类

一、创建型模式

1.单例
2.建造者
3.原型
4.工厂方法
5.抽象工厂

二、结构型模式

  1. 代理: 包装对象,当不方便直接访问内部对象,为内部对象做包装,返回包装对象。
  2. 适配器: 包装对象,抹平不同对象的访问接口,让对象访问接口一致。
  3. 装饰器: 包装对象,动态给对象织入功能,维持着一条包装链。
  4. 组合: 组合对象,将一组相关的对象,组合为‘部分-整体’的结构。
  5. 享元 : 组合对象,将一群类似的对象抽离出内部状态和外部状态,内部状态对象为共享,外部状态根据实际情况和内部状态进行连接。
  6. 外观 :
  7. 桥接: 组合对象,分离抽象部分和实现部分,通过桥接的方式连接对象;沿着多个维度变化不会增加系统的复杂度,还可以达到抽象和实现解耦的目的。

三、行为型模式

观察者、模板方法、迭代器、责任链、策略、状态、备忘录、解释器、命令、访问者、中介者

一、单个对象行为封装:
策略: 受外部状态影响改变对象行为;封装不同的对象行为,返回一个行为接口 。
应用:重构大量if-else逻辑或switch-case逻辑。

状态: 受内部状态影响改变对象行为;封装不同的状态行为(包含对象行为)。

模板方法: 通过继承的方式,共享一类共同的行为框架,具体的对象行为实现,由子类具体实现。

迭达器: 提供一个接口,访问一个对象内的所有行为(属性),接口可提供多种访问顺序。
应用:数组遍历、对象遍历。

备忘录: 为对象行为提供一个快照功能,能随时提供返回。
应用:状态管理数据持久化和还原,保证刷新页面应用状态不丢失。

二、依赖对象行为封装:
命令: 对象行为一对一,分离请求和接收对象行为的分离,并可在其中添加其他操作,因为命令对象已经持有接受者的引用。
发布订阅: 对象行为一对多(发散:多个对象行为无关联),分离发布和多个订阅对象的行为分离。
职责链: 对象行为一对多(串行:多个对象行为有关联),分离请求和多个接收对象行为的分离。
中介者: 对象行为多对多,使网状的多对多关系变成了相对简单的一对多关系,本质上是对多个对象模块之间复杂交互的封装。

易混设计模式:
适配器模式是为了解决两个对象之间不匹配的问题,而原对象又不适合直接修改,此时可以使用适配器模式进行一层转换。

代理模式是为了增强原对象的功能,提供的接口不会改变。

模板方法模式是将不同功能组合在一起,只提供框架,具体实现还需要调用者传进来。

外观模式是将比较复杂的调用进行一层封装,提供一个新的接口供用户使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值