架構師訓練營 week2 作業
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 方法。
评论