Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 49 additions & 39 deletions 面向对象设计原则.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,52 @@
最常见的7种面向对象设计原则如下表所示:
表1 7种常用的面向对象设计原则

设计原则名称
定 义
使用频率

单一职责原则
(Single Responsibility Principle, SRP)
一个类只负责一个功能领域中的相应职责
★★★★☆

开闭原则
(Open-Closed Principle, OCP)
软件实体应对扩展开放,而对修改关闭
★★★★★

里氏代换原则
(Liskov Substitution Principle, LSP)

所有引用基类对象的地方能够透明地使用其子类的对象
★★★★★

依赖倒转原则
(Dependence Inversion Principle, DIP)
抽象不应该依赖于细节,细节应该依赖于抽象
★★★★★

接口隔离原则
(Interface Segregation Principle, ISP)
使用多个专门的接口,而不使用单一的总接口
★★☆☆☆

合成复用原则
(Composite Reuse Principle, CRP)
尽量使用对象组合,而不是继承来达到复用的目的
★★★★☆

迪米特法则
(Law of Demeter, LoD)
一个软件实体应当尽可能少地与其他实体发生相互作用
★★★☆☆
<table>
<tr>
<td>设计原则名称</td>
<td>定 义</td>
<td>使用频率</td>
</tr>

<tr>
<td>单一职责原则 (Single Responsibility Principle, SRP)</td>
<td>一个类只负责一个功能领域中的相应职责</td>
<td>★★★★☆</td>
</tr>

<tr>
<td>开闭原则 (Open-Closed Principle, OCP)</td>
<td>软件实体应对扩展开放,而对修改关闭</td>
<td>★★★★★</td>
</tr>

<tr>
<td>里氏代换原则 (Liskov Substitution Principle, LSP)</td>
<td>所有引用基类对象的地方能够透明地使用其子类的对象</td>
<td>★★★★★</td>
</tr>

<tr>
<td>依赖倒转原则 (Dependence Inversion Principle, DIP)</td>
<td>抽象不应该依赖于细节,细节应该依赖于抽象</td>
<td>★★★★★</td>
</tr>

<tr>
<td>接口隔离原则 (Interface Segregation Principle, ISP)</td>
<td>使用多个专门的接口,而不使用单一的总接口</td>
<td>★★☆☆☆</td>
</tr>

<tr>
<td>合成复用原则 (Composite Reuse Principle, CRP)</td>
<td>尽量使用对象组合,而不是继承来达到复用的目的</td>
<td>★★★★☆</td>
</tr>

<tr>
<td>迪米特法则 (Law of Demeter, LoD)</td>
<td>一个软件实体应当尽可能少地与其他实体发生相互作用</td>
<td>★★★☆☆</td>
</tr>
</table>