写点什么

依赖倒置原则与单一接口隔离原则

用户头像
andy
关注
发布于: 2021 年 01 月 06 日
依赖倒置原则与单一接口隔离原则

思考:

  1. 什么是依赖倒置原则,为什么依赖倒置原则又被称为好莱坞原则?

  2. 使用接口隔离原则优化 Cache 类的设计,画出优化后的类图。

提示:get()、put()、delete()方法是提供给应用程序调用的,reBuild()方法是提供给系统进行远程调用的。


对于以上问题的思考如下:


一、依赖倒置原则


依赖倒置原则,英文全称 Dependency Inversion Principle,简称 DIP,指的是高层模块不能依赖低层模块,高层模块和底层模块共同依赖于抽象,抽象不能依赖实现,而是实现依赖于抽象。


依赖关系,这是软件架构设计中元素之间关系的描述,是一种松散的相互关系,元素之间不是紧密联系。


倒置,则是表明了软件架构中元素之间的依赖关系倒置,从依赖倒置原则理解,也能够好很好体现倒置的思想。基于倒置,也体现了开发的顺序和职责,一定是先设计,先高层次,然后,才能进行下一步的实际项目开发和测试,最后进行上线运行。


通过以下视图,便能够清晰理解依赖倒置原则的思想。



依赖倒置原则,本质上理解,又被称为好莱坞原则,即“Don't call me, i'll call you.”。通俗理解,好莱坞的电影制作过程一定是先基于电影制片人人和导演,再由制片人和导演,确定角色以及角色对应的演员,而不是演员倒推导演的制片人。当然,对于演员而言,非常被动,只能被选择。


如果想要对依赖倒置原则,理解得更加简单一点,那就是频繁变化的依赖于稳定不变的。接口的定义,是稳定不变的,具体的实现方式则是不断变化的,故而,实现依赖于接口。


二、基接口隔离原则优化 Cache 类的设计


单一接口职责隔离原则,描述的是一个模块的组成元素之间的相关性。职责指的是变化的原因,单一指的是只有一个,那么,对于单一接口职责原则的重新理解,便是模块的组成元素,也即是一个类只能有一个变化的原因。


对于单一接口隔离原则,真正的关键在于何时进行分割,这是非常重要的一点。根据原则,当发生变化的时候,就是隔离的时候。


综合题目和以上概念,对于这个问题,get()、put()、delete()方法是提供给应用程序调用的,reBuild()方法是提供给系统进行远程调用的,应用程序和系统调用的方法应该是相互分开,故而提供 Cache 类应该具有两个接口,分别定义应用程序的方法和系统调用的方法


Cache 类图如下:



用户头像

andy

关注

还未添加个人签名 2019.11.21 加入

还未添加个人简介

评论

发布
暂无评论
依赖倒置原则与单一接口隔离原则