---
url: https://sugarat.top/technology/study/design-patterns0.md
---

# 设计模式-设计原则

> 设计模式往往是软件设计中的最佳实践，是前人对问题解决的经验总结。

> 设计原则是设计模式的指导理论，它可以帮助我们规避不良的软件设计

## SOLID设计原则

### 单一职责原则

> （Single Responsibility Principle）

如果一个类有多于一个的动机被改变，那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。

### 开放封闭原则

> （Opened Closed Principle）

* 对扩展开放，意味着有新的需求或变化时，可以对现有代码进行扩展，以适应新的情况。
* 对修改封闭，意味着类一旦设计完成，就可以独立完成其工作，而不要对类进行任何修改。

### 里氏替换原则

> （Liskov Substitution Principle）

* 子类可以扩展父类的功能，但不能改变父类原有的功能。
* 子类继承父类时，除添加新的方法完成新增功能外，尽量不要重写父类的方法。

### 接口隔离原则

> （Interface Segregation Principle）

* 建立单一接口，不要建立庞大臃肿的接口，尽量细化接口，接口中的方法尽量少
* 不应该强行要求客户端依赖于它们不用的接口
* 类之间的依赖应该建立在最小的接口上面

### 依赖反转原则

> （Dependency Inversion Principle）

* 接口和抽象类不应该依赖于实现类，而实现类依赖接口或抽象类
* 高层模块不应该直接依赖于底层模块的具体实现，而应该依赖于底层的抽象

## 其它原则

### 迪米特法则

> 又称最少知道原则（Demeter Principle）

* 一个类对于其他类知道的越少越好
* 一个对象应当对其他对象有尽可能少的了解,只和朋友通信，不和陌生人说话

### 合成复用原则

> （Composite Reuse Principle）

* 复用时要尽量使用组合/聚合关系（关联关系），少用继承

## TODO

吸收知识后补充上述内容的示例
