概述
设计模式是对软件设计种普遍存在(反复出现)的各种问题,所提出的解决方案。
目的
提高代码重用性,可读性、可拓展性、可靠性。
使程序呈现高内聚、低耦合的特性。
设计原则
1.单一职责原则
对类来说,一个类应该只负责一项职责。
注:通常,应当遵循该原则。类中方法足够少时,可以在方法层级保持单一职责原则。
2.接口隔离原则
客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。
3.依赖倒装(倒置原则)
高层模块不应该依赖底层模块,两个都应该依赖抽象
抽象不依赖细节,细节应该依赖抽象(面向接口编程)
抽象的目的时制定好规范
4.里氏替代原则
所有引用基类的地方必须能透明地使用其子类的对象。【尽量不要重写父类方法】
5.开闭原则
一个类、模块、函数对扩展开放(对提供方而言),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。
6.迪米特法则
一个类对自己依赖依赖的类知道的越少越好。
[直接的朋友:成员变量、方法参数、方法返回值中的类]
[方法中new的局部变量中的类最好少出现]
7.合成复用原则
尽量使用合成/聚合的方式,而不是使用继承。
分类
创建型模式
单例模式、抽象工厂、原型模式、建造者模式、工厂模式
结构型模式
适配器、桥接、装饰、组合、外观、享元、代理
行为型模式
模板方法、命令、访问者、迭代器、观察者、中介者、备忘录、解释器、状态、职责链