如何提高代码的扩展性(5)

简介: 如何提高代码的扩展性(5)

依赖倒置原则(DIP)例子:


image.png


未进行依赖倒置设计:司机只开一种车


image.png


遵循依赖倒置原则设计:司机可以开多种车


https://blog.csdn.net/yabay2208/article/details/73826719


(5)接口隔离原则


ISP:其一是不应该强行要求客户端依赖于它们不用的接口;其二是类之间的依赖应该建立在最小的接口上面。简单点说,客户端需要什么功能,就提供什么接口,对于客户端不需要的接口不应该强行要求其依赖;类之间的依赖应该建立在最小的接口上面,这里最小的粒度取决于单一职责原则的划分。


如果客户端依赖了它们不需要的接口,那么这些客户端程序就面临不需要的接口变更引起的客户端变更的风险,这样就会增加客户端和接口之间的耦合程度,显然与“高内聚、低耦合”的思想相矛盾。


类之间的依赖应该建立在最小的接口上面。何为最小的接口,即能够满足项目需求的相似功能作为一个接口,这样设计主要就是为了“高内聚”。那么我们如何设计最小的接口呢?那就要说说粒度的划分了,粒度细化的程度取决于我们上一章讲的的单一职责原则里面接口划分的粒度。从这一点来说,接口隔离和单一职责两个原则有一定的相似性。


不同:

(1)单一职责原则更加偏向对业务的约束,接口隔离原则更加偏向设计架构的约束。


(2)从接口的细化程度来说,单一职责原则对接口的划分更加精细,而接口隔离原则注重的是相同功能的接口的隔离。接口隔离里面的最小接口有时可以是多个单一职责的公共接口。


(3)从原则约束的侧重点来说,接口隔离原则更关注的是接口依赖程度的隔离,更加关注接口的“高内聚”;而单一职责原则更加注重的是接口职责的划分。


image.png



相关文章
如何提高代码的扩展性(6)
如何提高代码的扩展性(6)
220 0
如何提高代码的扩展性(6)
|
测试技术 微服务
如何提高代码的扩展性(2)
如何提高代码的扩展性(2)
197 0
如何提高代码的扩展性(2)
如何提高代码的扩展性(4)
如何提高代码的扩展性(4)
145 0
如何提高代码的扩展性(4)
|
缓存 NoSQL 关系型数据库
如何提高代码的扩展性(1)
如何提高代码的扩展性(1)
283 0
如何提高代码的扩展性(1)
|
程序员
如何提高代码的扩展性(3)
如何提高代码的扩展性(3)
376 0
如何提高代码的扩展性(3)
|
存储 缓存 负载均衡
高可扩展性系统的设计(上)
高可扩展性系统的设计(上)
342 0
|
存储 移动开发 运维
高可扩展性系统的设计(下)
高可扩展性系统的设计(下)
200 0
高可扩展性系统的设计(下)
|
缓存 数据库
SSIS可靠性和扩展性—可扩展性
你可能对扩展性这个概念非常的熟悉,当然在SSIS中也有这个概念。这里有几个很有特色的属性,这一个小节的内容中将介绍如何在SSIS中使用可扩展性特性。      扩展内存 在设计SSIS之初,数据传输的操作都发生在内存中,这样会使数据传输和转换更加的快,一个设计目标是数据传输只有一条路径。
1037 0
|
9月前
|
存储 分布式计算 负载均衡
HadoopHDFS的特点可扩展性
【5月更文挑战第11天】HadoopHDFS的特点可扩展性
208 1

热门文章

最新文章