向高手请教个<<敏捷软件开发>>中的问题

femalelover 2008-07-15 11:09:19
邓辉译的, taodm推荐过的, 终于买来了, 一直没时间看, 最近翻了翻, 感觉疑问不少, 而且有点越看越糊涂哈.

书中说到一个设计原则: 依赖倒置原则DIP, 认为好的设计不应该是高层依赖低层, 而应该是低层依赖高层, 而这个高层与低层, 我看就是一个调用与被调用的关系. 照作者的说法, 难道被调用者应该依赖于调用者? 作者并了BUTTON来控制LAMP的例子, 意思是按下按钮, 灯会做出一定反应, LAMP变化了, 会影响BUTTON.

我个人觉得, LAMP变化了, 会影响BUTTON, 这是对的呀, 如果我们把LAMP由日光灯改成了白炽灯, 难道我们还能期望这个LAMP发出白光吗?
...全文
124 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2008-07-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 femalelover 的回复:]
但作者的意思是要数据库依赖应用程序.
[/Quote]
作者哪里讲了这句话的?
femalelover 2008-07-16
  • 打赏
  • 举报
回复
大家不必非得等taodm啊, 随便聊聊
yumei20001 2008-07-16
  • 打赏
  • 举报
回复
数据库有时后也需要随着程序的改动,进行优化
femalelover 2008-07-16
  • 打赏
  • 举报
回复
taodm说的协议栈, 应该也是应用层为高层, 物理层为低层吧.
femalelover 2008-07-16
  • 打赏
  • 举报
回复
拿STL来说, 应用程序使用STL, 难道还得要STL来依赖应用程序?
femalelover 2008-07-16
  • 打赏
  • 举报
回复
楼主没理解 高层也底层
楼上说的才是正确的。
用在具体一点的例子说,比如数据库和你的应用程序,数据库就是底层,你的应用程序就是高层。
你的应用程序依赖于数据库,但是数据库不会依赖你俄程序
----------
但作者的意思是要数据库依赖应用程序.
chinagavin 2008-07-16
  • 打赏
  • 举报
回复
楼主没理解 高层也底层
楼上说的才是正确的。
用在具体一点的例子说,比如数据库和你的应用程序,数据库就是底层,你的应用程序就是高层。
你的应用程序依赖于数据库,但是数据库不会依赖你俄程序。
taodm 2008-07-16
  • 打赏
  • 举报
回复
" 而这个高层与低层, 我看就是一个调用与被调用的关系."
这纯粹是瞎理解。
抽象层次是对问题域建模的就结果。
比如网络的7层协议模型,高低自然一目了然。
多实践中领会吧。
zhoujianhei 2008-07-16
  • 打赏
  • 举报
回复
感觉高层是结果,而底层是方法,要达到同样的结果可以使用不同的方法。
K行天下 2008-07-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 taodm 的回复:]
" 而这个高层与低层, 我看就是一个调用与被调用的关系."
这纯粹是瞎理解。
抽象层次是对问题域建模的就结果。
比如网络的7层协议模型,高低自然一目了然。
多实践中领会吧。
[/Quote]
学习了
ndsl3334 2008-07-16
  • 打赏
  • 举报
回复
如果我们把LAMP由日光灯改成了白炽灯, 难道我们还能期望这个LAMP发出白光吗?
说不太清楚,感觉这要看LAMP类改变成什么样了
就像书上说的,抽象没有和具体细节分离
所以弄了个ButtonServer的接口,LAMP就依赖于它,而不是被BUTTON依赖了

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧