架构师训练营 -- 第二周作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
高层模块不能依赖低层模块,而是大家都依赖于抽象
抽象不能依赖实现,而是实现依赖抽象
高层需要调用低层时,不是由低层设计和提供接口,高层按低层的规范进行调用;而是高层确认好自己需要使用的接口,有哪些输入输出,低层来实现具体的接口。和好莱坞法则(don't call me i'll call you)一样,由我(高层)来掌握主动权,而不是你(低层来掌握主动权)。
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
PHP mvc编程框架YII\phalcon框架 由开发者实现control等,框架依据路由来调用具体的control代码。由框架来调用开发者的代码。
依赖倒置,由使用者定义接口,提供方实现接口,一般会使用控制反转(依赖注入)将实例传递给使用。YII\phalcon框架支持依赖注入di容器,提前注册set好服务,需要使用哪个服务时,使用get方法来获取服务实例,而不需要自己去创建,获取的服务实例,具体实例化成哪个对象也可以设置和变更,不影响使用方的代码:
从容器中获得服务的最简单方式就是使用”get”方法,它将从容器中返回一个新的实例:
Phalcon\DI 允许服务重用,为了得到一个已经实例化过的服务,可以使用 getShared() 方法的形式来获得服务。
具体的 Phalcon\Http\Request 请求示例:
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
评论