《敏捷软件开发》读书笔记4
来源:互联网 发布:武汉理工大学知乎 编辑:程序博客网 时间:2024/04/29 14:46
1、 依赖倒置原则(DIP)P116
a. 高层模块不应该依赖于底层模块。二者都应该依赖于抽象。
b. 抽象不应该依赖于细节。细节应该依赖于抽象。
请考虑一下当高层模块依赖于底层模块时意味着什么。高层模块包含了一个应用程序中的重要的策略选择和业务模型。正是这些高层模块才使得其所在的应用程序区别于其他。然而,如果这些高层模块依赖于底层模块,那么对底层模块的改动就会直接影响到高层模块,从而迫使它们依次做出改动。
这种情形是非常荒谬的!本应该是高层的策略设置模块去影响底层的细节实现模块的。包含高层业务规则的模块应该优先并独立于包含实现细节的模块。无论如何高层模块都不应该依赖于底层模块。
此外,我们更希望能够重用的是高层的策略设置模块。我们已经非常擅长于通过子程序库的形式来重用底层模块。如果高层模块依赖于底层模块,那么在不同的上下文中重用高层模块就会变得非常困难。然而,如果高层模块独立于底层模块,那么高层模块就可以非常容易地被重用。该原则是框架(framework)设计的核心原则。
2、 所有结构良好的面向对象框架都具有清晰的层次定义,每个层次通过一个定义良好的、受控的接口向外提供了一组内聚的服务。P117
3、 事实上,这种依赖关系的倒置正是好的面向对象设计的标志所在。使用何种语言来编写程序是无关紧要的。如果程序的依赖关系是倒置的,它就是面向对象的设计。如果程序的依赖关系不是倒置的,它就是过程化的设计。
依赖倒置原则是实现许多面向对象技术所宣称的好处的基本底层机制。它的正确应用对于创建可重用的框架来说是必要的。同时它对于构建在变化面前富有弹性的代码也是非常重要的。由于抽象和细节被彼此隔离,所以代码也非常容易维护。P122
4、设计模式是很好的东西。它们可以帮组解决很多设计问题。但是它们的存在并不意味着必须要经常使用它们。本例中,虽然可以应用TEMPLATE METHOD模式,但是使用它是不明智的,因为使用该模式的代价要高于它所带来的好处。P148
- 《敏捷软件开发》读书笔记4
- 《敏捷软件开发》读书笔记
- 《敏捷软件开发》读书笔记
- 《敏捷软件开发》--读书笔记
- 《敏捷软件开发》读书笔记2
- 《敏捷软件开发》读书笔记3
- 《敏捷软件开发》读书笔记5
- 读书笔记--敏捷软件开发(1)
- 软件测试-敏捷软件开发读书笔记
- 《敏捷软件开发:原则、模式与实践》--敏捷开发读书笔记
- 《敏捷软件开发》读书笔记(一)
- 《敏捷软件开发》读书笔记(四)
- 敏捷软件开发读书笔记1——敏捷软件开发宣言及其原则
- 《敏捷软件开发 原则、模式与实践》的读书笔记
- 面向对象设计原则--《敏捷软件开发》读书笔记
- COMMAND模式--《敏捷软件开发》读书笔记(一)
- DECORATOR模式--《敏捷软件开发》读书笔记(二)
- VISITOR模式--《敏捷软件开发》读书笔记(三)
- 图片面板(ImagePanel)
- 试试好用不
- 浪费半天工夫,fckedit与struts2.x上传图片时冲突
- 【多线程】利用多线程提高并发吞吐率
- 刚来csdn.net
- 《敏捷软件开发》读书笔记4
- 40 个轻量级 JavaScript 库
- asp.net页面间变量值传递的方法
- 软件承接的要点
- Eclipse CVS 配置详细
- IE内存泄漏的恶心问题及其原因
- 2009-03-07读书记录:《head first java》(第二版)——1至4章
- CSDN新闻频道活生生的歧视
- 美惊现“当心僵尸”警语