第二周作业
作业一:
请描述什么是依赖倒置原则,为什么有时候依赖倒置原则又被称为好莱坞原则?
依赖倒置原则是指: 由高层定义接口,下层服务去实现接口,这样高层就不会修改代码,下层服务可以根据不同的业务修改对应的代码
好莱坞原则是指:不要给我们打电话,我们会给你打电话(don't call us, we'll call you)”这是著名的好莱坞原则
好莱坞预选演员本来是演员会自己主动报名,然后再筛选,这样筛选范围太大,好莱坞原则的思想是: 如果你足够厉害,我们会找到你的,相当于和之前的报名方式颠倒过来了,所以称为依赖倒置原则
作业二:
请描述一个你熟悉的框架,是如何实现依赖倒置原则的。
一、spring security的 org.springframework.security.core.userdetails.UserDetailsService接口
这个接口定义,方便自己的服务去实现,从而自己去实现认证登录,框架本身不清楚哪些用户可以登录,所以需要自己去实现,只需要实现如下接口,如果不抛出异常证明认证通过,spring security就能判断是一个有效的用户,这是一个典型的依赖倒置原则
二、我理解的是: 模板方法就是依赖倒置的一种方式,抽象类定义大部分实现,留出一个抽象方法让下层服务实现,本身是一种依赖倒置原则
比如spring的动态数据源实现: org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource
这个抽象类的抽象方法,定义好抽象接口,让下层去实现,依赖倒置
作业三:
请用接口隔离原则优化 Cache 类的设计,画出优化后的类图。
Cache设计类图如下
学习总结:
本周主要学习了设计模式之下的设计原则:
1、依赖倒置原则
2、接口隔离原则
3、里式替换原则
4、单一职责原则
5、对扩展开放,对修改关闭原则
设计模式是设计原则的一种常用操作,整体设计原则遵循对 高内聚,低耦合的原则
依赖倒置原则到底是如何倒置的?
接口隔离原则主要是暴露的接口恰到好处
里式替换原则是: 父类在任何情况下都能被子类替换
单一职责:一个类和一个方法最好只有做一件事情
每种设计模式中都用了哪些设计原则,框架中的设计用到了哪些设计原则?
评论