Dependence Inversion Principle
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dependence Inversion Principle相关的知识,希望对你有一定的参考价值。
设计原则之依赖反转原则
动机:当类里面含有属性类,如果直接写类,代码太死,可以考虑将属性类变成接口,方便扩展。
结论:高级类不直接使用低级类,使用接口作为抽象层。Creational Design Patterns可以帮助我们实现依赖反转原则,比如工厂模式,抽象工厂模式,原型模式。
Bad Example:
缺点:
1、当出现一个新的工人superWorker,不得不修改Manager的源代码
2、Manger里面已经存在的代码也会被影响,比如方法里面用到Worker
class Worker {
public void work() {
//working
}
}
class Manager{
Work worker;
public void setWorker(Worker w) {
worker = w;
}
public void manage() {
worker.work();
}
}
class SuperWorker {
public void work() {
//.... working much more
}
}
Good Example:
好处:
1、添加superWorker不需要修改Manager类
2、对Manager最小的修改风险
interface IWorker {
public void work();
}
class Worker implements IWorker{
public void work() {
// ....working
}
}
class SuperWorker implements IWorker{
public void work() {
//.... working much more
}
}
class Manager {
IWorker worker;
public void setWorker(IWorker w) {
worker = w;
}
public void manage() {
worker.work();
}
}
本文出自 “不死的小强” 博客,请务必保留此出处http://qianray.blog.51cto.com/4607992/1856666
以上是关于Dependence Inversion Principle的主要内容,如果未能解决你的问题,请参考以下文章
Salesforce LWC学习 Dependence Picklist实现
5.2 部分依赖图 (Partial Dependence Plot, PDP)
5.2 部分依赖图 (Partial Dependence Plot, PDP)
android studio 之dependence添加依赖maven仓库中的项目出错
偏依赖图(Partial Dependence Plots)是什么?排列重要性(Permutaion Importance)是什么?如何解读?有什么意义?