1.为什么要学习设计模式
- 应对面试中的各种设计模式的相关问题
- 提高自己写程序的水平,尽可能减少工作中被人吐槽是烂代码
- 提升自己对代码的组织,构建,设计水平
- 更加容易的阅读他人的代码
2. 设计模式的原则
提升代码水平的原则,只是书写了其中几个原则
- 单一职责原则 -> 功能简洁,这样就易于可读和可维护
- 开闭原则 -> 代码的灵活的设计便于扩展各种功能,
- 其它的几个原则个人认为比较拗口,平时只要牢记这两个原则就行
2.1 具体书上的设计原则如下
- 开闭原则(Open Closed Principle,OCP)
- 单一职责原则(Single Responsibility Principle, SRP)
- 里氏代换原则(Liskov Substitution Principle,LSP)
- 依赖倒转原则(Dependency Inversion Principle,DIP)
- 接口隔离原则(Interface Segregation Principle,ISP)
- 合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
- 最少知识原则(Least Knowledge Principle,LKP)或者迪米特法则(Law of Demeter,LOD)
3. 设计模式的介绍
主要分为三种类型:创建型,结构型,行为型,每种类型里面有分为我们常用的和不常用的,甚至于有些语音天然就是使用了某些模式,比如JavaScript
- 创建型
- 单例模式
- 工厂模式
- 建造者模式
- 原型模式
- 结构型
- 代理模式
- 桥接模式
- 装饰器模式
- 适配器模式
- 门面模式
- 组合模式
- 享元模式
- 行为型
- 观察者模式
- 模版模式
- 策略模式
- 职责链模式
- 状态模式
- 迭代器模式
- 访问者模式
- 备忘录模式
- 命令模式
- 解释器模式
- 中介模式