DRY - Don’t Repeat Yourself
拒绝重复
不要写一次以上相同或类似的代码,也称为“Once and Only Once(仅此一次)”原则。
SCP - Speaking Code Principle
会说话的代码原则
代码必须可以传递它的意图。代码中的注释可能意味着代码没有充分传递它的意图。
OCP - Open Closed Principle
开放封闭原则
一个设计单元应该对调整开放。这样的调整不会使得现有的客户端无法工作。继承是一个可以让你达到该目标的机制之一:子类可以在父类的客户端保持正常工作的情况下进行调整。
LSP - Liskov Substitution Principle
里氏替换原则
类的一个实例必须适用于父类的所有实例的应用场合。这不仅仅要求编译器这样转换源码,还应使得在变更后系统仍然可以正常工作。
DIP - Dependency Inversion Principle
依赖倒转原则
高层的概念不应该依赖底层的概念/实现,而依赖底层的概念/实现可以依赖高层的概念,因为高层的概念相对底层的概念更不易变化。可以通过引入新的接口以遵守该原则。
ISP - Interface Segregation Principle
接口隔离原则
接口必须小。他们只能包含若干个方法,而且包含的这些方法必须紧密关联。
REP: Reuse/Release Equivalency
Principle
复用发布等同原则
复用的元素等同于要发布的元素。
CRP: Common Reuse Principle
共同重用原则
包内的所有类总是一起被复用。
CCP: Common Closure Principle
共同闭包原则
一个包中的类必须封闭起来以应对相同类型的变化。如果一个类必须变化,包内的所有类也必须一起变化。
ADP: Acyclic Dependencies Principle
非循环依赖原则
包之间的依赖结构应该是非循环。
SDP: Stable Dependencies Principle
稳定依赖原则
一个包应该依赖于至少和它一样稳定的包。
SAP: Stable Abstractions Principle
稳定抽象原则
包越稳定,就可能越抽象。而不稳定的包应该是具体的。
TDA: Tell, Don’t Ask
只说不问原则
不要对一个对象进行查询,而是告诉它要做什么。和“迪米特原则”相似,每个对象应该仅和“朋友”交互,比如仅同成员或者输入参数保有的对象。
SOC: Separation Of Concerns
分离关注点
不要再一个类中混合若干个关注点。也被称为“Single Responsibility Principle(单一职责原则)”。
网友评论