1.单一职责原则
类的职责要单一,不能将太多的职能放在一个类中。
2.开闭原则
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件的基础上去扩展其功能。实现开闭原则的关键是抽象化,找到系统的可变因素,将它封装起来。
3.里氏替换原则
一个可以接受基类对象的地方必然可以接受一个子类对象。在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,使用子类来替换父类对象。
4.依赖倒转原则
要针对抽象层编程,而不要针对具体类编程。
5.接口隔离原则
不应该依赖那些它不需要的接口,使用多个专门的接口来取代一个统一的接口。
6.合成复用原则
系统中应该尽量多使用组合/聚合关系,少用甚至不用继承关系。
在面向对象设计中,可以通过两种基本方法来复用已有的设计和实现,即通过组合/聚合关系或者通过继承。
继承复用:实现简单,易于扩展。但是破坏系统的封装性。从基类继承而来的实现是静态的,不可能在运行时发生改变,没有足够的灵活性,只能在有限的环境中使用。(“白箱”复用)
组合/聚合复用:耦合度相对较低,选择性地调用成员对象的操作,可以在运行时动态进行。(“黑箱”复用)
7.迪米特法则
一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,减少类之间的耦合度。
时间: 2024-10-10 14:53:13