1、单一职责原则(
SRP:Single responsibility principle)
又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。此原则的核心就是
解耦
和增强
内聚性
。将不同的职责封装到不同的类或模块中。
2、开闭原则(OCP:
Open Closed Principle
)是
面向对象设计
中“可复用设计”的基石,是面向对象
设计
中最重要的原则之一。对于扩展是开放的,对于修改是关闭的。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。也就是说,我们可以改变模块的功能。对模块行为进行扩展时,不必改动模块的源代码。实现开闭原则的关键就在于“抽象”。
在设计之初,要非常清楚地了解用户需求,判断需求中包含的可能的变化,从而明确在什么情况下使用开闭原则。在开发过程中,就要知道可能的变化,将这些需要频繁变化部分进行抽象。查明可变化的等待时间越长,创建正确的抽象就约困难。
在实际开发过程的设计开始阶段,罗列出系统所有可能的行为,并把这些行为加入到抽象底层,根本就是不可能的,这么去做也是不经济的。应该现实的接受修改,使代码可以对扩展开放,对修改关闭。
5、
依赖倒置原则
(DIP:Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
两种表述:
A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。
B.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
6、迪米特法则(最少知道原则)(LoP:Law of Demeter)
为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
7、合成复用原则(CRP:Composite Reuse Principle)
原则是尽量使用合成/聚合的方式,而不是使用继承。