woaidongmao

文章均收录自他人博客,但不喜标题前加-[转贴],因其丑陋,见谅!~
随笔 - 1469, 文章 - 0, 评论 - 661, 引用 - 0
数据加载中……

OOP遵照:依赖倒置原则(DIP)

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

简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:phpma开源 罗江游鱼

抽象不应当依赖于细节;细节应当依赖于抽象;
要针对接口编程,不针对实现编程。

反面例子:

 clip_image001

缺点:耦合太紧密,Light发生变化将影响ToggleSwitch

解决办法一:
Light作成Abstract,然后具体类继承自Light
 clip_image002

优点:ToggleSwitch依赖于抽象类Light,具有更高的稳定性,而BulbLightTubeLight继承自Light,可以根据"开放-封闭"原则进行扩展。只要Light不发生变化,BulbLightTubeLight的变化就不会波及ToggleSwitch

缺点:如果用ToggleSwitch控制一台电视就很困难了。总不能让TV继承自Light吧。

解决方法二:
 clip_image003

优点:更为通用、更为稳定。

结论:
使用传统过程化程序设计所创建的依赖关系,策略依赖于细节,这是糟糕的,因为策略受到细节改变的影响。依赖倒置原则使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性。

 

posted on 2008-12-22 21:34 肥仔 阅读(1568) 评论(0)  编辑 收藏 引用 所属分类: OOP


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理