经典的设计模式有 23 种,分成三类,分别是:
创建型:
1、单例 2、工厂 3、建造者 4、原型
结构型:
1、适配器 2、装饰器 3、门面 4、享元 5、代理 6、组合 7、桥接
行为型:
1、策略 2、迭代器 3、模板方法 4、命令 5、状态 6、观察者 7、责任链 8、访问者 9、中介者 10、解释器 11、备忘录
但其实很多模式都是新瓶换旧瓶。例如:策略模式、状态模式、解释器模式、命令模式基本大同小异。所以不用太刻意去记住这些设计模式,很多设计模式都很类似,有时容易与其他设计模式混淆。虽然有些模式很类似,但通过这些模式都可以反映其中核心的设计原则,那就是:
1、单一职责:功能要垂直
2、迪米特原则:最少知道,不要暴露多余的信息给外界
3、里氏替换原则:凡是父类出现的地方都可以用子类代替
4、组合复用:使用组合方式来代替继承,实现功能复用
5、开放闭合:对外部扩展开放,对内部修改关闭
6、接口隔离:大接口拆分成若干个小接口,每个接口之间只保留客户端需要的方法
7、依赖倒置:高层和低层模块都依赖抽象模块
而这 7 个设计原则,或多或少与面向对象思想有关:
1、多态 2、继承 3、封装