什么是设计模式
- 一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;
- 使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;
- 设计模式使代码编制 真正工程化;
- 设计模式使软件工程的 基石脉络, 如同大厦的结构一样;
- 并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;
- 能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
1.单一职责原则:每个类都只有一个职责,修改一个类的理由只有一个
2.开放-封闭远程(OCP):开放是指可拓展性好,封闭是指一旦一个类写好了,就尽量不要修改里面的代码,通过拓展(继承,重写等)来使旧的类满足新的需求,而不是修改一个类里面的代码。
3.依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。底层模块例如很多工具类,例如专门用于管理sql连接的类,管理文件,管理socket连接的类,高层类指具体实现需求的类。高层类和底层类都不应该相互依赖,不能出现高层类改变了,底层类就不能用了这种情况,两个都依赖抽象是指连个都依赖与调用的api,即接口,在开发的过程中,一旦接口设计后就不要轻易改变,所以接口的设计是尤为重要的。细节应该依赖抽象,是指一个类里面功能的实现(细节)要依赖于调用该类的接口。
4.里氏转换原则:子类必须能够替换掉他们的父类,即父类可以实现的功能,子类一定可以实现。