依赖倒置原则
举个例子: 披萨店(pizzaStore)里,会制作格式各样的pizza,,但是披萨店不应该直接依赖各式各样的pizza,否则,类图如下
image.png
(此图来源于 Head First 设计模式)
如果pizzaStore,直接依赖各式各样的pizza,带来的问题有
1 修改某个类型的pizza,可能会导致需要修改PizzaStore
2 新增一个类型的pizza,需要修改PizzaStore
如何依赖倒置

这样,就可以避免以上的问题.
- 依赖倒置和面向接口编程 的思想很相似,如果非要说不同点的话,依赖倒置原则强调了,对一类
物品
的抽象
如果不懂这句话的可以 区分一下接口
,抽象类
在定义上的区别:
抽象类是用来捕捉子类的通用特性的
接口是抽象方法的集合
好莱坞原则
别调用我们,我们会调用你
- 作用:防止“依赖腐败”
当
高层组件
和底层组件
相互依赖,高层组件又依赖边侧组件
,边侧组件
又依赖底层组件
.依赖腐败就产生了,系统的设计就很难搞的懂...
- 解释:
在好莱坞原则之下,我们允许低层组件将自己挂钩到系统上,但是高层组件会决定什么时候和怎样使用这些低层组件。换句话说,高层组件对待低层组件的方式是“别调用我们,我们会调用你”
- 应用
模板方法模式就应用到了这个原则,模板方法类对它的子类说: 不要调用我们,我们会调用你
- 和依赖倒置原则的区别
依赖倒置原则 面向接口或者抽象类编程
好莱坞原则 子类的(底层)尽量不要调用超类(父类)的方法
单一原则
当我们允许一个类不但要完成自己的任务还要负担更多的责任,我们就需要给这个类多个变化的原因.将导致这个类非常容易因为某个原因而做修改.
一个类尽量保持只有一个引起变化的原因
高内聚
内聚,用来度量一个类或者模块紧密达到单一目的和责任
当一个模块或者类被设计成只支持一组相关功能时,我们就说它具有高内聚;反之,当被设计成支持一组不相关的功能时,则称为低耦合.
网友评论