<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
设计原则
目前较为常见的一些设计原则如下表:
原则 |
备注 |
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(单一职责原则)”。 |
From: Refactoring in Large Software Projects Performing Complex Restructurings Successfully,P43
转载于:https://blog.51cto.com/bj007/330991