【白话设计模式】课程笔记整理
白话设计模式
六大设计原则
开闭原则
Open-Close Principle,OCP
在⾯向对象编程领域中,开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的,但对于修改是封闭的。
开闭原则的核⼼思想也可以理解为⾯向抽象编程。
单⼀职责原则
单⼀职责原则(Single Responsibility Principle,SRP)⼜称单⼀功能原则。
如果需要开发的⼀个功能需求不是⼀次性的,且随着业务发展的不断变化⽽变化,那么当⼀个Class类负责超过两个及以上的职责时,就在需求的不断迭代、实现类持续扩张的情况下,就会出现难以维护、不好扩展、测试难度⼤和上线⻛险⾼等问题。
实现类似于策略模式。
⾥⽒替换原则
继承必须确保超类所拥有的性质在⼦类中仍然成⽴
简单来说,⼦类可以扩展⽗类的功能,但不能改变⽗类原就是说:当⼦类继承⽗类时,除添加新的⽅法且完成新增功能外,尽量不要重写⽗类的⽅法。这句话包括了四点含义:
- ⼦类可以实现⽗类的抽象⽅法,但不能覆盖⽗类的⾮抽象⽅法。
- ⼦类可以增加⾃⼰特有的⽅法。
- 当⼦类的⽅法重载⽗类的⽅法时,⽅法的前置条件(即⽅法的输⼊参数)要⽐⽗类的⽅法更宽松。
- 当⼦类的⽅法实现⽗类的⽅法(重写、重载或实现抽象⽅法)时,⽅法的后置条件(即⽅法的输出或返回值)要⽐⽗类的的⽅法更严格或与⽗类的⽅法相等。
⾥⽒替换原则的作⽤
-
⾥⽒替换原则是实现开闭原则的重要⽅式之⼀。
-
解决了继承中重写⽗类造成的可复⽤性变差的问题。
-
是动作正确性的保证,即类的扩展不会给已有的系统引⼊新的错误,降低了代码出错的可能性。
-
加强程序的健壮性,同时变更时可以做到⾮常好的兼容性,提⾼程序的维护性、可扩展性,降低需求变更时引⼊的⻛险。
⾥⽒替换原则的⽬的是使⽤约定的⽅式,让使⽤继承后的代码具备良好的扩展性和兼容性。
如果使⽤了继承,就⼀定要遵从⾥⽒替换原则,否则会让代码出现问题的概率变得更⼤。
迪⽶特法则
迪⽶特法则(Law of Demeter,LoD)⼜称为最少知道原则(Least Knowledge Principle,LKP),是指⼀个对象类对于其他对象类来说,知道得越少越好。也就是说,两个类之间不要有过多的耦合关系,保持最少关联性。
接⼝隔离原则
⼀个类对另⼀个类的依赖应该建⽴在最⼩的接⼝上
接⼝隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞⼤的接⼝拆分成更⼩的和更具体的接⼝,让接⼝中只包含客户感兴趣的⽅法
依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)是指在设计代码架构时,⾼层模块不应该依赖于底层模块,⼆者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
DIP就是我们常说的“⾯向接⼝编程”。
本文作者:JamKing
本文链接:https://www.cnblogs.com/JamKing/p/16707439.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步