Liskov替换原则:子类型(subtype)必须能够替换掉它们的基类型(basetype)。 违反LSP的情形 对于LSP的违反常常会导致以明显违反OCP的方式使用运行时类型检查。通常,会使用一个显式的if语句或者if/else链去确定一个对象的类型,以便于可以选择针对该类型的正确行为。 很显然, ...
分类:
其他好文 时间:
2016-09-08 18:09:45
阅读次数:
151
我在今年7月到9月参加了ThoughtWorks(中国)在西安举办的暑期特训营,因此我也接触到了敏捷软件开发思想。但是我对其理解还是不够,在这里整理整理,增加认知。 敏捷软件开发(Agile software development) 敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起大家关... ...
分类:
其他好文 时间:
2016-09-07 19:00:17
阅读次数:
126
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改的。 如果程序中的一处改动就会产生连锁反应,导致一系列相关模块的改动,那么设计就具有僵化性的臭味。OCP建议我们应该对系统进行重构,这样以后对系统再进行这样那样的改动时,就不会导致更多的修改。如果正确地应用OCP,那么以后再进行同样的改动时, ...
分类:
其他好文 时间:
2016-09-04 23:57:34
阅读次数:
321
转自:http://www.uml.org.cn/SoftWareProcess/201108154.asp 0. 软件开发的本质 先让我们看看一般的产品生产: 例一,汽车生产。原材料、配件等采购完毕(我这里说到了采购配件,这相当于把部分功能的生产转交给其他职能公司。对应到软件生产的(子)项目外包。 ...
分类:
其他好文 时间:
2016-09-01 14:47:42
阅读次数:
269
SRP:单一职责原则 一个类应该只有一个发生变化的原因。 为何把两个职责分离到单独的类中很重要呢?因为每一个职责都有变化的一个轴线。当需求变化时,该变化会反映为类的职责的变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。 如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一 ...
分类:
其他好文 时间:
2016-08-28 23:56:36
阅读次数:
175
转载原地址: http://blog.csdn.net/wayne_ran/article/details/1601008 敏捷开发(agile development)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和 ...
分类:
其他好文 时间:
2016-08-28 16:16:52
阅读次数:
156
测试驱动开发 简单的3条测试规则: 第一个也是最明显的一个效果,是程序中的每一项功能都有测试来验证它的操作的正确性。这个测试套件可以给以后的开发提供支援。无论何时我们因疏忽而破坏了某些已有的功能,它就会告诉我们。我们可以向程序中增加功能,或者更改程序结构,而不用担心在这个过程中会破坏重要的东西。测试 ...
分类:
其他好文 时间:
2016-08-28 01:01:38
阅读次数:
160
转:http://www.cnblogs.com/fnng/archive/2013/02/03/2891246.html 反应快速灵敏。 在敏捷软件开发领域,更注重的以人为核心,迭代,循序渐进的开发方法。相比传统的开发方法,这种方法能更快速的开发,上线,反馈,调整、迭代。以敏捷的姿态去发展产品。 ...
分类:
其他好文 时间:
2016-07-08 15:01:25
阅读次数:
138
本篇为Robert C. Martin 敏捷软件开发一书中的前两章的读书笔记。 这两章分别为 敏捷实践 和 极限编程概述,简要介绍了敏捷开发中的原则和理论。 ...
分类:
其他好文 时间:
2016-07-01 18:27:07
阅读次数:
231
1.TEMPLATE METHOD 泛型,也就是这个模式,是可以基于泛型的。 我们往往会有一些算法,比如排序算法。它的算法部分,我可以把它放在一个基类里面,这样具体类型的比较可以放在子类里面。 看如下冒泡排序算法: 先看int的排序: 只要实现了比较和交换2个接口,就可以了。 在看看基于泛型的子类: ...
分类:
其他好文 时间:
2016-06-09 12:13:03
阅读次数:
208