# 【面向对象思维】

# 原则-SOLID

是5个面向对象设计原则的缩写,分别是:

1.单一职责原则(SRP)

一个类或模块应该只负责一项领域内的职责。也就是说,一个类或模块应该只有一个引起它变化的原因,而不是多个原因。这样,当需求发生变化时,只需要修改与之相关的类或模块,而不会影响到其他的类或模块。

2.开放封闭原则(OCP)

软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。也就是说,当需求发生变化时,不应该修改已有的代码,而是通过扩展已有代码或添加新的代码来实现变化。这样,可以保证原有代码的稳定性和可靠性。

3.里式替换原则(LSP)

子类应该能够替换掉它们的父类并且不会影响程序的正确性。也就是说,任何使用父类的地方都应该能够使用它的子类,而不会出现错误或异常。

4.接口隔离原则(ISP)

一个类不应该强制性地依赖它不需要的接口。也就是说,每个接口应该只包含客户端所需要的方法,而不应该包含客户端不需要的方法。这样,可以减少类与接口之间的耦合。

5.依赖倒置原则(DIP)

高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖细节,细节应该依赖于抽象。也就是说,模块之间应该通过接口或抽象类进行交互,而不是直接依赖具体实现类。这样,可以减少模块之间的耦合,提高系统的灵活性和可维护性。

# DRY

Don't Repeat Yourself(不要重复你自己) 也称为单一权威原则 是一种代码重构原则,该原则表明相同的代码不应该出现在不同的地方,应该抽象出共性并放在一个单独的地方。

# KISS

Keep It Simple, Stupid(保持简单) 是一种设计原则,该原则强调保持系统设计简单易懂,避免不必要的复杂性和繁琐性。

# YAGNI

You Ain't Gonna Need It(你不会需要它) 是一种极限编程原则,强调在编写代码时不要添加不需要的功能,而是在需求发生变化时再添加这些功能。

# 高内聚低耦合

把复杂的功能高度封装,对外提供接口,发布事件的方式与外部的对象进行交互。

玩过游戏《塞尔达传说の王国之泪》里的左纳乌组件系统就能够充分理解这种高内聚低耦合的设计优点。

多种功能单一的“组件(高内聚)”,然后通过“胶水(低耦合)”进行关联各个物体。就可以组合出强大丰富的载具,机器人,飞行摩托等。

Markdown 图片

Markdown 图片

Markdown 图片

把这种思想应用于程序框架,可以使得框架易于扩展,容易维护,易于团队合作配合。在程序开发设计中具有重大意义。