依赖倒置(DIP)》的相关内容

依赖倒置原则(DIP)批判 -- 称之为本末倒置原则更贴切

在批判之前,先了解一下依赖倒置 依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。 简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述: 抽象不应当依赖于细节;细节应当依赖于抽象; 要针对接口编程,不针对实现编程。 反面例子: 缺点:耦合太紧密,Light发生变化将影响ToggleSwitch。 解决办法一: 将L ...
by age0 2004-08-24 浏览 (27774) 回复 (63) 关键字:

依赖倒置原则/客户就是上帝

引用我将对依赖倒置原则的讨论总结了一篇文章《依赖倒置原则与客户就是上帝》, 请看第12帖。我就是喜欢瞎类比, 见笑 在看了王咏武的《道法自然》后, 我写了一封 email 就书中的几个疑问与作者讨论, 引发很多有趣的讨论 , 在csdn 王咏刚的 blog 中。 从依赖倒置的理解到代码编写的风格, 还是比较有意思的。 http://blog.csdn.net/wangyonggang/arc ...
by armlinux-w 2004-11-03 浏览 (6211) 回复 (21) 关键字:

面向对象设计准则

摘抄自《敏捷软件开发-原则、方法与实践》-Robert C. Martin (1)SRP 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。 职责即为"变化的原因". (2)OCP 开放封闭原则 软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。 对于扩展是开放的,对于更改是封闭的. 关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来. 开发人 ...
by yangzhichao 2008-03-28 浏览 (719) 回复 (0) 关键字:

再乱弹一下“领域模型与数据访问接口的依赖问题”

记得前些时候,我在javaeye发了一个帖子,引发了一段争论,具体的请看这个链接: http://forum.javaeye.com/viewtopic.php?t=11712 可以说Robbin是用心思考后才作出这个总结的,这个总结很有意思,也很有道理。但是并不能说全对,说实在话,我对于技术的观点一直是反反复复的,这个反复是随着我对技术的一种体会而来,可能先对后错,也可能先错后对,但是无论怎 ...
by firebody 2005-09-13 浏览 (12690) 回复 (33) 关键字:

关于构造函数,静态工厂,抽象工厂,容器配置等的辨析

呵呵.发现激烈的争论对发现双方的问题还是有所帮助的.大家心浮气躁之下,很有可能露出破绽. 不过,要真正解决问题,还是要心平气和下来.否则一直吵闹下去除了闹一肚子气不会有什么结果的. 通过和readonly, charon的讨论.我发觉确实有必要把构造函数,静态工厂,抽象工厂,容器配置这几个有联系也有区别的东西辨析一下. 好吧,开吹. 一.问题的提出. 假设我的系统有这样一个接口: [ ...
by ajoo 2004-08-18 浏览 (26022) 回复 (61) 关键字:

回看依赖倒置原则

这几天,挺闲的,回过头又看了一下依赖倒置,很有意思. 依赖倒置的核心: a 高层模块不应该依赖低层模块.二者都应该依赖于抽象. b 抽象不应该依赖于细节.细节应该依赖于抽象. 程序中所有的依赖关系都应该终止与抽象类或者接口,则有: 1.任何变量都不应该持有一个指向具体类的指针或者引用 2.任何类都不应该从具体类派生 3.任何方法都不应该覆写它的任何基类中的已经实现了的方法 当然每个程序中都会有违反 ...
by flysnail 2008-07-14 浏览 (18) 回复 (0) 关键字:

依赖倒转

依赖倒转原则DIP就是高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
by ruby_java 2008-03-15 浏览 (62) 回复 (0) 关键字:

7种设计坏味道和11种原则

转的文章,出处太多了,也不知道到底哪个才是真的出处。 7种设计坏味道 1.僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。 2.脆弱性: 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 3.牢固性: 很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。 4.粘滞性: 做正确的事情比做错误的事情要困难。 5.复杂性(不必要的) ...
by bulargy 2008-03-04 浏览 (147) 回复 (0) 关键字: 设计 坏味道 原则

面向对象设计原则

一个良好的面向对象设计需要遵循一些基本原则,如单一职责原则(SRP)、开放-封闭原则(OCP)、Liskov替换原则(LSP)、依赖倒置原则(DIP)、接口分离原则(ISP)等。 1、 单一职责原则(SRP) 描述:就一个类而言,应该仅有一个引起它变化的原因。 应用:在构造对象时,将对象的不同职责分离至两个或多个类中,确保引起该类变化的原因只有一个。 带来的好处:提高内聚、降低耦合。 个 ...
by dq1618 2007-05-16 浏览 (642) 回复 (0) 关键字: 面向对象设计

每个程序员都应牢记的7种坏味道,11种原则,23种模式

此文出处:http://www.javaeye.com/topic/41096 每个程序员都应牢记的7种坏味道,11种原则,23种模式 (一)7种设计坏味道 1.僵化性: 很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其它改动。 2.脆弱性: 对系统的改动会导致系统中和改动的地方在概念上无关的许多地方出现问题。 3.牢固性: 很难解开系统的纠结,使之成为一些可在其他系统中重用 ...
by freeman983 2007-07-31 浏览 (291) 回复 (0) 关键字:

C++最重要的语法-const, private

公司有个同事也是使用C++开发,代码质量从我个人角度来看感觉非常差,几个明显地方: 1、类、对象的概念非常混乱,某些类只能生成一个对象,多了肯定有问题了。这导致无法在一个进程中监听多个端口,当然人家的解决办法就是用多进程。 2、类与类之间强耦合,可以说除了一些小工具类以外,没有任何一个类可以单独拿出来使用,所有类里面的成员都是public,因为你不知道哪个其它类还要使用这个成员。线程函数因为要 ...
by qiezi 2007-06-10 浏览 (1514) 回复 (12)

google背后的分布式架构

Google背后的分布式计算架构策略 Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略……   加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动 ...
by dogstar 2008-05-29 浏览 (1005) 回复 (0)

dxpcom v0.1 发布

由于windows上一直遇到DLL加载失败的问题,所以测试是在linux上进行的。 dxpcom v0.1下载地址 包括对xpidl的修改,增加了-m d选项,用来产生d接口。-m dwrap选项还在编写中,生成的代码现在还无法使用。 mozilla/xpcom/*.d大部分是用修改过的xpidl生成的,另有一些是使用htod工具转换的。 有空可以帮我测试一下,目前还不保证转换完全正确,但 ...
by qiezi 2007-04-16 浏览 (10396) 回复 (161)

交叉包含该如何解决啊

//file A.d module A; private import B; //file B.d module B; private import A;  此时编译会报错,module A is in multiple packages A,这该如何解决呢?
by codekitten 2008-06-09 浏览 (1017) 回复 (27)

打算把DTwisted开放出来

从twisted移植了一些接口过来,稍作了些简化,暂命名为DTwisted。在google code上申请了项目,却一直连接不上。 关于它的历史,可以看这里: D语言和python的差异 基本上编写它只有3天,加起来大概5小时吧,所以还很简陋,只实现了listen tcp,代码也只有400多行。文档和注释都没有写,因为中间架构修改太多了,现在基本上定型。协议打算采用BSD,我也不是很熟悉,好 ...
by qiezi 2007-01-11 浏览 (1421) 回复 (14)

struts2新特性预览

看到关于框架选择的帖子,贡献一点东西,如果你有选择struts的意向,还是直接等struts2好了。 Struts2与Struts1的对比 来源:struts2开发组 翻译:tianxinet(胖猴) Action 类: • Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。 • Struts 2 Action类可以实现一个Act ...
by tianxinet 2006-08-21 浏览 (959) 回复 (0) 关键字:

Groovy 1.6-beta-1发布,性能有大幅提高!

感谢G2One和Groovy开发团队为我们发布了Groovy 1.6的第一个beta版本 除了73 个bug fixes和24个improvements之外,剩下的全部是关于性能的提升了 :) 运行和编译性能的提高 正如你在Groovy 1.5.5所体验到的,其编译速度较以前版本有了3 到5 倍的提高,编译速度的提升对于开发版本(1.6)和稳定版本(1.5.x分支)都是有效的,这要得益于类查 ...
by agile_boy 2008-05-03 浏览 (1625) 回复 (11) 关键字: groovy

推荐知识库条目

Comming soon