摘要
先总结
这些是面向对象设计中的重要原则:
- 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起变化的原因。换句话说,一个类应该只负责一个功能或者一个职责。
- 开闭原则(Open/Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。这意味着一个软件实体应该通过扩展来实现新功能,而不是通过修改已有的代码来实现。
- 依赖倒转原则(Dependency Inversion Principle,DIP):高层模块不应该依赖于低层模块,二者都应该依赖于抽象。换句话说,高层模块和低层模块都应该依赖于抽象的接口,而不是具体的实现。
- 里氏代换原则(Liskov Substitution Principle,LSP):子类型必须能够替换掉它们的父类型。换句话说,一个程序中的对象应该能够在不改变程序正确性的前提下替换掉程序中的任何一个父类型对象。
- 迪米特法则(Law of Demeter) 也称为最少知识原则(Principle of Least Knowledge):一个对象应该对其他对象有最少的了解,即一个对象应该对其它对象有限的接触,只与其直接的朋友通信。
这些原则通常被认为是良好的面向对象设计的基石。遵循这些原则可以帮助我们编写更加灵活、可维护和可扩展的软件,可以降低系统的耦合性,提高代码的灵活性和可维护性。
迪米特法则
迪米特法则(Law of Demeter)也称为最少知识原则(Principle of Least Knowledge),是面向对象设计中的一个重要原则,它强调一个对象应该对其他对象有最少的了解,即一个对象应该对其它对象有限的接触,只与其直接的朋友通信。
迪米特法则可以简单地概括为:
- 每个单元对其他单元有限的了解。
- 只与你的直接朋友交谈。
- 不要和陌生人说话。
这个原则的核心思想是降低耦合性,提高模块的独立性和可维护性。按照迪米特法则,对象之间的交互应该尽可能少,对象应该只与其直接的朋友进行交互,而避免直接与陌生对象进行通信。
直接的朋友包括:
- 当前对象本身。
- 当前对象的成员对象。
- 当前对象创建的对象。
- 作为方法参数传递给当前对象的对象。
- 当前对象的方法中的局部变量。
迪米特法则的好处包括:
- 降低了类之间的耦合度,使得系统更加灵活、可维护和可扩展。
- 提高了模块的独立性,使得系统的各个模块可以更容易地被理解和测试。
- 促进了代码的重用,使得系统的各个模块可以更容易地被复用和组合。
总的来说,迪米特法则是面向对象设计中的一个重要原则,它提倡在设计软件系统时应尽量减少对象之间的直接交互,从而降低系统的耦合度,提高系统的灵活性和可维护性。
评论区
0/2048