设计模式六大原则-开放封闭原则

1、开放-封闭原则概述

      开闭原则(OCP)有两个主要特征:(1)对扩展开放:模块的行为可以扩展,当应用的需求改变时,可以对模块就行扩展

(2)对修改关闭:对模块进行扩展时,不必改动模块的源代码。开闭原则是面向对象设计中可复用设计的基石。

2、开放-封闭原则的实现

      开闭原则实现的关键-----抽象。抽象基类:把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规定出所有的具体实现必须提供的方法的特征。作为系统设计的抽象层,要预见所有的可能的扩展,从而使得在任何扩展情况下,系统的抽象底层不需要修改。派生类:从抽象基类派生一个或多个新的具体实现,可以扩展基类的行为,系统设计对扩展开放。

3、如何使用开闭原则

      抽象约束:(1)通过接口或者抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或抽象类中不存在的public方法。(2)参数类型、引用对象尽量使用接口或抽象类,而不是实现类。(3)抽象层尽量保持稳定,一旦确定即不允许修改。

       让设计对于最有可能发生的变化遵循OCP原则。遵循OCP原则的代价是很昂贵的,创建适当的对象需要开发时间和精力,抽象增加软件复杂度,把OCP应用限定在最有可能发生的变化上。

4、开闭原则的优点

(1)可复用性(2)可维护性

注意:违反开闭原则的重构可采取设计模式:策略模式、模板方法模式

猜你喜欢

转载自blog.csdn.net/u014086857/article/details/85648703