写点什么

架构师训练营 -- 第二周作业

用户头像
stardust20
关注
发布于: 2020 年 06 月 14 日



作业一:

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

高层模块不能依赖低层模块,而是大家都依赖于抽象

抽象不能依赖实现,而是实现依赖抽象



高层需要调用低层时,不是由低层设计和提供接口,高层按低层的规范进行调用;而是高层确认好自己需要使用的接口,有哪些输入输出,低层来实现具体的接口。和好莱坞法则(don't call me i'll call you)一样,由我(高层)来掌握主动权,而不是你(低层来掌握主动权)。



作业二:

  • 请描述一个你熟悉的框架,是如何实现依赖倒置原则的。

PHP mvc编程框架YII\phalcon框架 由开发者实现control等,框架依据路由来调用具体的control代码。由框架来调用开发者的代码。

依赖倒置,由使用者定义接口,提供方实现接口,一般会使用控制反转(依赖注入)将实例传递给使用。YII\phalcon框架支持依赖注入di容器,提前注册set好服务,需要使用哪个服务时,使用get方法来获取服务实例,而不需要自己去创建,获取的服务实例,具体实例化成哪个对象也可以设置和变更,不影响使用方的代码:

从容器中获得服务的最简单方式就是使用”get”方法,它将从容器中返回一个新的实例:



<?php $request = $di->get("request");

Phalcon\DI 允许服务重用,为了得到一个已经实例化过的服务,可以使用 getShared() 方法的形式来获得服务。



具体的 Phalcon\Http\Request 请求示例:



<?php $request = $di->getShared("request");



作业三:

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



用户头像

stardust20

关注

还未添加个人签名 2019.11.18 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-- 第二周作业