合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
SRP 单一职责原则 Single Responsibility Principle
每个函数或者功能块只有一个职责,只有一个原因会使其改变。
OCP 开放一封闭原则 The Open-Closed Principle
对于扩展是开放的,对于修改是封闭的。
DIP 依赖倒置原则 Dependency Inversion Principle
高层模块和低层模块应该依赖中间抽象层(即接口),细节应该依赖于抽象。
ISP 接口隔离原则 Interface Segregation Principle
接口尽量细化,同时方法尽量少,不要试图去建立功能强大接口供所有依赖它的接口去调用。
LKP 最少知道原则 Least Knowledge Principle
一个子模块应该与其它模块保持最少的了解。
图片
微信公众号【嵌入式系统】个人想法,设计原则主要是可在有限范围内指导功能模块划分,作为提高软件复用度和质量的思路。
函数或功能应该仅有一个引起它变化的原因。单一职责原则是最简单但又最难运用的原则,需要按职责分割大模块,如果一个子模块承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个模块完成其他职责的能力。划分依据是影响它改变的只有一个原因,并不是单纯理解的一个模块只实现一个功能,对函数层面也是如此。
在 SRP 中把职责定义为“变化的原因”(a reason for change),如果有可能存在多于一个的动机去改变一个子模块,表明这个模块就具有多个职责。有时很难注意到这点,习惯以组的形式去考虑职责。例如Modem 程序接口,大多数人会认为这个接口看起来非常合理。
//interface Modem 违反 SRP
void connect();
void disconnect();
void send();
void recv();
TOP