# 什么是设计模式
设计模式不是语法规定,而是解决特定问题的一系列套路,提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。
GoF 23
GoF四人帮在《设计模式:可复用面向对象软件的基础》书中提出的23种设计模式
提高思维能力和设计能力
程序设计更加标准化、软件开发效率提高
使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性强
# GoF23
创建型模式
- 单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式
结构型模式
- 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式
- 模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式
# OOP七大原则
开闭原则:对扩展开放,对修改关闭
里氏替换原则:继承必须确保超类所拥有的性质再子类中仍然成立
依赖倒置原则:要面向接口编程,不要面向实现编程
单一职责原则:控制类的粒度大小、将对象解耦、提高内聚性
接口隔离原则:要为各个类建立他们需要的专用接口
迪米特法则:只与你的直接朋友交谈,不跟“陌生人”说话
合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现