架構師訓練營 week2 作業

用户头像
ilake
关注
发布于: 2020 年 09 月 27 日



1. 请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?

定義
  • High-level modules should not depend on low-level modules. Both should depend on abstractions.

  • Abstractions should not depend on details. Details should depend on abstractions.

用途
  • 主要是用來指導框架層面的設計

  • 框架抽象出接口

  • 具體的業務實現接口

  • 框架自動化的調用各個實現接口的程式

  • 專注於高模塊的設計

  • 找出目前物件的本質,設計出接口

  • 提醒我們高層不應該依賴於低層,永遠要設計抽象化接口,依賴於同一層的抽象化接口

好處
  • Decouple 高層和低層

  • 高層依賴於抽象,不需要因為低層內部的變化而有任何改變

  • 高層架構穩定

好莱坞原则 (Don't call me, I will call you)
  • 高層 call 低層

  • 高層決定抽象

  • 低層實作抽象

  • 高層會是穩定可讓多個低層重用的



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



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





用户头像

ilake

关注

还未添加个人签名 2019.04.15 加入

还未添加个人简介

评论

发布
暂无评论
架構師訓練營 week2  作業