这里记录的是自己看敏捷软件设计的一些思考和感悟。其中是一些**火花,片段,偶然零碎,记录下来,以便备忘。偶尔兴趣来了,有些demo
权当手痒。
-
SRP 单一职责 个人理解:
- 需要注意把控好粒度
- 单一职责其实是为了解决耦合依赖问题,比如一个类里面你有多个职责,那么当其中某一个职责变化的时候你这个类是必须也跟着变化的。
- 单一指的是在职责内聚的情况下变化的部分单一
- 其实可以类比微服务,将一个大服务拆分成多个小服务部署降低风险,其实跟类的单一设计原则有点类似的味道
-
OCP 开放封闭
- 对扩展开放
- 对更改是封闭的
- 简单点说程序核心的部分不会随着外部的变化而变化,同时又有适用变化的能力
-
DIP 依赖倒置
-
为什么说是倒置呢? 我从这个角度看的,比如 一个类原先没有实现接口的时候很潇洒想加方法就加,但是为了解耦,加了一个接口的时候,这个时候如果接口加方法你就必须 添加方法。这个是不是也有点倒置的感觉呢?
-
简单点就是引入接口,隔离2个具体类,通过接口进行通信
-
总结: 1. 感觉这么多原则,其实就是面向模糊编程,应对各种变化。 2. 要解耦就必须引用第三方,这个第三方我们可以想的更远点,可能是消息中间件,数据库,接口,adatpter(适配器) 等 在想想契约这个词,有没有感觉很多东西都串起来了,类与类之间解耦通过接口,系统与系统之间解耦通过db,消息中间件