开放封闭原则

开放封闭原则的定义:

 Software entities like classes,modules and functions should be open for extension but closed for modifications(一个软件实体如类,模块和函数应该对扩展开放,对修改关闭)

开放封闭原则主要体现在两个方面:

对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

开放封闭的含义:

原始含义代码应该通过继承来复用,已经实现和已有的接口都不应当变动,新的接口不应当实现已有的接口。如今,其含义已经变成:通过实现接口或者抽象类来达到,即接口通过不同的实现达到复用,而具体实现不改动。

开放封闭的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以对修改就是封闭的。而通过面向对象的继承和抽象机制,可以实现对抽象体的继承,通过复写其方法来改变固有行为,实现新的扩展方法,所以对于扩展是开放的。里氏替换原则为其提供保证。例如下面这幅图

我的理解:

开放封闭原则是面向对象的核心。软件开发的一个不变真理就是“改变”。我们只有遵循这个原则,才能面对改变应对自如。开放封闭原则要面向抽象编程,多使用抽象和接口。

posted @ 2013-03-12 22:49  小跳蚤  阅读(300)  评论(0编辑  收藏  举报