https://refactoringguru.cn/design-patterns/adapter
设计模式定义
软件开发,在特定环境中,经过验证的,重复出现的解决方案。
核心:扩展隔离变化点,抽象稳定点。
举例:我们应该限制变化点的范围。比如开发过程中,某一块代码我们在项目中多处使用,那么我们修改这个代码,就会牵动很多地方,所以我们需要限制变化的范围。
为什么使用设计模式
- 通用语言,方便其他人识别和扩展
- 从已有的有效的设计模式中,方便软件设计
设计模式6大原则
设计模式是根据设计原则推导出来的。
1. 开闭原则(Open Close Principle)
对扩展开放,对修改关闭
2. 单一职责原则(Single Responsibility Principle)
就一个类或者一个接口而言,只负责一件事。
3. 里氏替换原则(Liskov Substitution Principle)
子类型必须能够替换父类型。
其实就是多态:由于使用基类对象的地方都可以使用子类对象,因此在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。
多态好处:1. 提高了代码的维护性(继承保证) 2、提高了代码的扩展性(由多态保证) 。开闭原则的实现,扩展的时候只需要扩展子类的方法就可以了。
4. 接口隔离原则(InterfaceSegregation Principles)
最小接口依赖。类似于二叉树公共节点。
定义:一个类对另一个类的依赖应该建立在最小的接口上。不应该使用庞大的总接口。
问题由来:两个类依赖一个公共接口,如果他不是最小接口,那么他就要去实现一些不必要的方法。(封装)
5. 依赖倒置原则(Dependence Inversion Principle)
定义:高层模块不应该依赖于低层模块,抽象不应该依赖细节,细节不相互依赖。高层模块就是抽象类,抽象类进行依赖,而低层模块就是具体实现类不相互依赖。
也就是我们尽量使用接口或抽象类的目的是指定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类来完成。
6. 迪米特法则
迪米特法则又称为 最少知道原则,它表示一个对象应该对其它对象保持最少的了解。通俗来说就是,只与直接的朋友通信。这样会导致类之间的耦合度降低,每个类都尽量减少对其他类的依赖,降低类之间的耦合度,提高模块的相对独立性。
但是使用的时候要注意不要过度使用迪米特法则进行权衡,他会产生大量中间类。