本文共 1254 字,大约阅读时间需要 4 分钟。
类的核心原则之一:一个类应专注于执行单一的职责。
如果一个类承担多个职责,且其中一个职责产生变化时可能导致其他职责受到影响,这表明该类的粒度可以被拆分。例如, responsibilities A 和 responsibilities B 应该被分别分配给不同的类,如类 A1 和 A2。独立于客户端的依赖:一个类与其他类的依赖应基于最小的接口。
这意味着客户端只需要关心所需的接口,而不必关心实现的具体细节。这有助于降低耦合性,提升系统的灵活性。高层模块不应直接依赖底层模块,而是通过抽象层进行交互。
抽象层应控制依赖关系,具体实现留给低层模块。其核心思想是面向接口编程,以确保抽象的稳定性远高于具体实现的多样性。一个对象以它的子类型来替代时,系统行为不发生变化。
里氏替换强调,当子类封装时尽量避免重写父类的方法,以确保原有功能不受影响。在适当情况下,可以通过聚合、组合或依赖等方式减少继承带来的耦合性。软件实体(如类、模块、函数)应对扩展开放,对修改关闭。
设想:通过扩展行为而非修改现有代码实现变化。抽象化的框架应为实现留下空间,以支持不同实现的多样化发展。对象间的耦合度应最低。
一个对象对直接的朋友了解,具体包括成员变量、方法参数和返回值中的类。此外,局部变量中的类不应视为直接朋友。通过封装,降低对象之间的相互了解程度。优先通过组合而非继承实现复用。
类或对象之间通过聚合或组合实现高效的代码复用,以构建更大的结构,而不是通过继承层级。这种方法有助于减少耦合性,提升系统复用性。转载地址:http://wkgiz.baihongyu.com/