注:摘自《敏捷软件开发:原则、模式与实践》(Robert C. Martin) 对于LSP可以做如下解释: 子类型(subtype)必须能够替换掉它们的基类型(base type) Barbara Liskov首次写下这个原则是在1988年。她说到, 这里需要如下替换性质: 若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P中,用o1替换o2后,程序P行为功能不变,则S是T的子类型。 OOD中IS-A关系是就行为方式而言的,行为方式是可以进行合理假设的,是客户程序所依赖的。 基于契约设计(Design By Contract DBC), ...
注:摘自《敏捷软件开发:原则、模式与实践》(Robert C. Martin) 遵循开放封闭原则设计出的模块具有两个主要的特征。 1、“对于扩展是开放的”(Open for extension) 这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。换句话说,我们可以改变模块的功能。 2、“对于更改是封闭的”(Closed for modification) 对模块行为进行扩展时,不必改动模块的源代码或者二进制代码。 OCP原则关键是抽象。 但对于应 ...
zaife
搜索本博客
我的相册
A826bd78-d40f-4806-a981-9effd9f6bc45-thumb
2006国米全家福
共 3 张
最近加入圈子
存档
最新评论