概述
有句话这样说:程序设计中,没有什么问题是包一层不能解决的,如果有,就在包一层!
- 三大类型:
- 创建型模式,5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
- 结构型模式,7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
- 行为型模式,11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
- 六大原则
- 单一职责原则
- 里氏替换原则(Liskov Substitution Principle)
- 依赖倒转原则(Dependence Inversion Principle)
- 接口隔离原则(Interface Segregation Principle)
- 迪米特法则(最少知道原则)(Demeter Principle)
- 合成复用原则(Composite Reuse Principle)
关于设计模式的理解
一、创建型
-
简单工厂模式
- 理 解:爸爸对儿子说:“要什么就和我说,你只管好好读书,别问老子是咋弄的!”
- 主要解决:大量创建对象时,依赖细节,创建时各种各样的逻辑干扰
- 实 现:3种实现:1 通过上端指定类型创建 2.通过配置文件实现可配置创建 3.配置+反射完全解除细节依赖创建,可配置、可扩展
- 核 心:将创建过程封装,将上端应用和下端逻辑分离
- 举 例:最常用模式,绝大多框架使用工厂模式
-
工厂方法模式:
- 理 解:老板说:“为了各个部门之间互不干扰,你们独立运作,各干各的吧"
- 主要解决:对象创建时,避免修改创建方法的逻辑,当需要创建新对象时,添加新工厂而不是修改来的代码,对修改关闭、对扩展开发
- 实 现:提供一个接口工厂,为每个对象创建一个工厂方法类
- 核 心:每个对象创建一个工厂方法类,对修改关闭、对扩展开发
- 举 例:略
-
抽象工厂模式:
- 理 解:由于工厂太多,先把工厂抽象化了,但是每个工厂中产品型号又很多,所以把产品型号也抽象化了!在使用的时候得确定2点:需要用哪个工厂,造什么型号的车!
- 主要解决:在一个产品族里面,定义多个产品,提供一个创建一系列相关或相互依赖对象的接口,具体创建由具体实现工厂去完