写点什么

架构师训练营 --- 第二周课后练习

用户头像
Jacky.Chen
关注
发布于: 2020 年 09 月 25 日

一、什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

1、高层模块不应该依赖底层模块,二者都应该依赖抽象。

  2、抽象不应该依赖细节,细节应该依赖抽象。

  3、依赖倒置的中心思想是面向接口编程。

  4、依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础搭建的架构要稳定的多。

  5、使用接口或抽象类的目的是指定好规范,而不涉及任何具体的操作,把展现细节的任务交给具体的实现类来完成。

6、好莱坞原则(Dont't call me, I'll call you):也就是定义好抽象类或接口,底层模块(业务代码)对抽象类或接口进行具体实现,高层模块(框架)调用抽象类或接口,实现框架和具体业务的低耦合。



总结:

依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。我们在项目中使用这个原则要遵循下面的规则:

  1、每个类尽量都有接口或者抽象类,或者抽象类和接口两都具备

  2、变量的表面类型尽量是接口或者抽象类

  3、任何类都不应该从具体类派生

  4、尽量不要覆写基类的方法

  5、如果基类是一个抽象类,而这个方法已经实现了,子类尽量不要覆写。类间依赖的是抽象,覆写了抽象方法,对依赖的稳定性会有一定的影响

  6、结合里氏替换原则使用



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



  • 提示:cache 实现类中有四个方法,其中 put get delete 方法是需要暴露给应用程序的,rebuild 方法是需要暴露给系统进行远程调用的。如果将 rebuild 暴露给应用程序,应用程序可能会错误调用 rebuild 方法,导致 cache 服务失效。按照接口隔离原则:不应该强迫客户程序依赖它们不需要的方法。也就是说,应该使 cache 类实现两个接口,一个接口包含 get put delete 暴露给应用程序,一个接口包含 rebuild 暴露给系统远程调用。从而实现接口隔离,使应用程序看不到 rebuild 方法。



优化后类图:



用户头像

Jacky.Chen

关注

还未添加个人签名 2019.05.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营---第二周课后练习