七大原则之 -- 开闭原则

  • 软件开发时,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽可能根据者7条原则来开发程序,从而提高软件的开发效率,节约软件开发成本和维护成本,我们将在下面的几节中依次来介绍者7条原则,

开闭原则的定义

由勃兰特·梅耶 提出,他在1988年的著作《面向对象软件构件》中提出,软件实体应当对扩展开放,对修改关闭,这就是开闭原则的经典定义。
这里软件实体包括以下几个部分:
1.项目中划分出的模块
2.类与接口
3.方法

\color{red}{开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块功能,使其满足新的需求。}

开闭原则的作用

开闭原则是面向对象程序设计的终极目标,它使软件实体有一定适应性和灵活性和延续性,具体来说,起作用如下。

1.对软件测试的影响

软件遵循开闭原则的话,软件测试时只需要测试扩展的部分就可以了,因为原有代码相对稳定。

2.可以提高代码的复用性

粒度越小,被复用的可能就越大,在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。

3.可以提高软件的可维护性

遵守开闭原则的软件,其稳定性高、延展性强,从而易于扩展和维护。

开源原则的实现方法

可以通过“抽象约束、封装变化” 实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类总。
因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节可以从抽象派生出来实现类来进行扩展,当软件需要发生变化时,只需要根据需求重新派生一个实现类来扩展就可以了。

以windows的桌面主题为例结婚扫开闭原则的应用
【例1】windows的左面主题设计
分析:windws的主题时桌面背景图片,窗口颜色和声音等元素组合,用户根据自己的喜爱更换自己的桌面主题,也可以从网上下载主题,这些主题由共同的特点,这些特点就可以定义一个抽象类(abstract Subject),而每个具体的主题(Specific Subject)是其子类,用户窗口可以分局需要选择或者增加新的主题,而不需要修改源代码,所以需要它满足开闭原则。

test.png

下一篇 上一篇怎样正确的使用设计模式

原文

你可能感兴趣的:(七大原则之 -- 开闭原则)