面向对象设计原则之依赖倒转原则
来源:互联网 发布:sql server 字符串主键 编辑:程序博客网 时间:2024/06/05 09:52
如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。依赖倒转原则是Robert C. Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的经典著作“Agile Software Development, Principles, Patterns, and Practices”一书中。依赖倒转原则定义如下:
依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。 依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即时用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。 为了确保该原则的应用,一个具体类应当只实现接口或抽象类中声明过的方法,而不要给出多余的方法,否则将无法调用到在子类中增加的新方法。 在引入抽象层后,系统将具有很好的灵活性,在程序中尽量使用抽象层进行编程,而将具体类写在配置文件中,这样一来,如果系统行为发生变化,只需要对抽象层进行扩展,并修改配置文件,而无须修改原有系统的源代码,在不修改的情况下来扩展系统的功能,满足开闭原则的要求。 在实现依赖倒转原则时,我们需要针对抽象层编程,而将具体类的对象通过**依赖注入(DependencyInjection, DI)**的方式注入到其他对象中,**依赖注入是指当一个对象要与其他对象发生依赖关系时,通过抽象来注入所依赖的对象**。常用的注入方式有三种,分别是:**构造注入,设值注入(Setter注入)和接口注入**。 构造注入是指通过构造函数来传入具体类的对象; 设值注入是指通过Setter方法来传入具体类的对象; 接口注入是指通过在接口中声明的业务方法来传入具体类的对象。
在上述重构过程中,我们使用了开闭原则、里氏代换原则和依赖倒转原则,在大多数情况下,这三个设计原则会同时出现,开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段,它们相辅相成,相互补充,目标一致,只是分析问题时所站角度不同而已。
0 0
- 面向对象设计原则---依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则之依赖倒转原则
- 面向对象设计原则 面向对象设计原则之依赖倒转原则
- 面向对象的设计原则五 - 依赖倒转原则
- 面向对象的设计原则五 - 依赖倒转原则
- 面向对象的设计原则——依赖倒转原则
- 面向对象的设计原则五 - 依赖倒转原则
- 易控INSPEC软件与三菱FX系列PLC以太网通讯
- 专利法
- 304. Range Sum Query 2D
- 【JavaEE】Servlet的doGet()和doPost()方法
- 关于IE9下用按钮触发file上传控件,请求无法触发的问题
- 面向对象设计原则之依赖倒转原则
- Unity3D研究院之手游开发中所有特殊的文件夹
- Spark机器学习之协同过滤
- JavaScript 简单计算器
- XDOJ-1009-Josephus环的复仇(线段树解约瑟夫环)
- Oracle导入带中文的sql文件,报ORA-01756: 引号内的字符串没有正确结束
- C语言中二重指针和指针数组以及数组指针的测试
- PAT
- linux初学 unit10 练习