您的位置:首页 > 其它

OO设计原则 -- Dependency Inversion Principle:OO设计的 DIP依赖倒置原则(转)

2012-02-29 11:09 357 查看
原文:

http://blog.csdn.net/eric_jo/article/details/6799067

依赖倒置原则的2个重要方针

A. High level modules should not depend upon low level modules. Both shoulddepend upon abstractions.

高层模块不应该依赖于低层模块,二者都应该依赖于抽象
B. Abstractions should not depend upon details. Details should depend uponabstractions.
抽象不应该依赖于细节,细节应该依赖于抽象

概念解说:

依赖:在程序设计中,如果一个模块a使用/调用了另一个模块b,我们称模块a依赖模块b。

低层模块:往往在一个应用程序中,我们有一些低层次的类,这些类实现了一些

基本的或初级的操作,我们称之为低层模块;

高层模块:另外有一些高层次的类,这些类封装了某些复杂的逻辑,并且依赖于

低层次的类,这些类我们称之为高层模块。

我们现在来看看依赖有几种,依赖也就是耦合,分为下面三种:

----- 零耦合(Nil Coupling)关系,两个类没有依赖关系,那就是零耦合。

----- 具体耦合(Concrete Coupling)关系,两个具体的类之间有依赖关系,

那么就是具体耦合关系,如果一个具体类直接引用另外一个具体类就会发

生这种关系。

-----抽象耦合(Abstract Coupling)关系,这种关系发生在一个具体类和一个抽

象类之间,这样就使必须发生关系的类之间保持最大的灵活性。

为什么叫做依赖倒置(DependencyInversion)呢?
面向对象程序设计相对于面向过程(结构化)程序设计而言,依赖关系被倒置了。因为传统的结构化程序设计中,高层模块总是依赖于低层模块。

依赖倒置(Dependence InversionPrinciple)原则讲的是:要依赖于抽象,不要依赖于具体。

简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:

抽象不应当依赖于细节;细节应当依赖于抽象;

要针对接口编程,不针对实现编程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐