面向对象设计原则
对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问
题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。
1.1 简介
1.1.1 单一职责原则(Single Responsibility Principle, SRP)
类的职责要单一,不能将太多的职责放在一个类中。
1.1.2 开闭原则(Open-Closed Principle, OCP):
软件实体对扩展是开放的,但对修改是关闭的。
1.1.3 里氏代换原则(Liskov Substitution Principle, LSP):
在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。
1.1.4 依赖倒转原则(Dependency Inversion Principle, DIP):
要针对抽象层编程,而不是针对具体类编程。
1.1.5 接口隔离原则(Interface Segregation Principle, ISP):
使用多个专门的接口来取代一个统一的接口。
1.1.6 合成复用原则(Composite Reuse Principle, CRP):
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。
1.1.7 迪米特法则(Law of Demeter, LoD):
一个软件实体对其它实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应
当发生直接的相互作用,而是通过引入一个第三者发生间接交互。