zoukankan      html  css  js  c++  java
  • 六大设计原则--开闭原则

    6.开闭原则(Open Close Principle)(OCP)
    开闭原则的核心思想:软件应该面对扩展是开放的,而面对修改是关闭的
    开闭原则是所有面向对象设计原则的核心,上面的五个原则都是为实现这一目标服务的。软件设计追求的目标就是高内聚,低耦合,可拓展性强。
    因此开闭原则认为:软件应该是可扩展、而不可修改的。即软件应该对扩展开放,而对修改关闭。
    对扩展开放
    也就是说,当有新的需求变化时,可以对现有的代码进行扩展,添加新的实现类,来适应新的情况,因此开闭原则的核心就是**面向抽象编程**。因为只有面象抽象,才可以做到实现的分离,对程序进行扩展。
    对修改关闭
    类一旦设计完成,就说明它可以独立的完成自己的工作了,不可以再因为功能性的原因对类做出更改。
    因此,如果有新的需求,我们只需要添加这个新需求的实现,通过抽象或接口注入新的实现来改变类的行为,而不应该更改已经存在的类。
    再设计一个模块时,应该使这个模块再不被修改的前提下进行扩展,不能修改任何源代码。从而保证现有功能的稳定。

    需求总是再变化的,只有让类依赖于抽象,才能做到对修改的关闭。通过面向对象的继承和多态机制,实现类继承抽象类,并通过重写其方法来改变他的行为,实现新的扩展。
    对于违反开闭原则的类,必须进行重构。封装变化是实现这一原则的重要手段,对于经常变化的状态,将它封装成一个类。
    开闭原则的优点:
    1. 通过扩展已有的软件系统,可以提供新的行为,以满足软件的新需求,提高软件的灵活性
    2. 已有的软件功能,不能进行修改,以保证软件的稳定性

    开闭原则的核心就是面向抽象编程,里氏替换原则就是最好的实现,但是一定要避免滥用抽象,只对变化的部分进行抽象。
  • 相关阅读:
    【HNOI2015】落忆枫音
    【HNOI2015】菜肴制作
    【HNOI2015】亚瑟王
    php内置函数分析之strrev()
    php内置函数分析之ucwords()
    php内置函数分析之strtoupper()、strtolower()
    php内置函数分析之ucfirst()、lcfirst()
    php内置函数分析之trim()
    nginx安装配置目录
    nginx 正向代理
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/12718831.html
Copyright © 2011-2022 走看看