美文网首页
开放封闭原则

开放封闭原则

作者: pokorz | 来源:发表于2017-06-04 23:54 被阅读0次

本文是对敏捷软件开发第九章开发-封闭原则的学习笔记。

一句话,软件实体应该是可扩展但是不可修改的。

  • 对于扩展是开放的
  • 对于修改是封闭的

比较经典的例子就是代码中如果有链式的ifelse语句或者switch的语句的处理。这个也可以说是软件开发中大家都会遇到的问题,我个人也没什么好的方法
还是具体问题具体分析,遇到可以抽象的,可以抽象出subclass来处理,如做不到可以尝试使用map代替条件做处理。
可以参考下这个链接:https://sourcemaking.com/refactoring/smells/switch-statements

如何根据OCP原则设计系统?

实际上对于软件工程中的很多的理论都是需要开发者的经验支持的,就比如今天说的ocp,需要开发者对于他设计的模块应该对哪种变化封闭做出选择,因为模块是无法完全做到封闭的,软件是变化的。并且过度设计和不设计一样难以接受。

书中有个绘制图形的例子,从一开始对每个形状做判断需要使用switch开始,到抽象出形状类,再需要对各种形状绘制的排序需求。第一次变化是遵循了OCP原则,开放了接口,封闭了每个图形内的变化。到第二个变化时候发现原先的抽象并不能满足这次需求的变化(不能做到按照需求根据顺序绘制不同类型图形)。这里也引出了一个问题:需求的变化而引起设计的变化(并且这个也是无法避免的)。从软件开发角度上说,我们可以做到针对第一种变化,抽象,确保不再被此类问题引起代码僵化。而对于第二种变化:主动尝试刺激变化,包括短周期迭代,测试驱动,首先开发最重要的特性,频繁发布软件引起需求变化尽早到来。

相关文章

  • 开放封闭原则

    本文是对敏捷软件开发第九章开发-封闭原则的学习笔记。 一句话,软件实体应该是可扩展但是不可修改的。 对于扩展是开放...

  • 开放-封闭原则

    对修改关闭,对增加开放

  • 开放 — 封闭原则

    在软件设计模式中,这种不能修改,但可以扩展的思想是重要的一种设计原则,是开放—封闭原则(The Open-Clos...

  • 六大设计原则-开放封闭原则

    开放封闭原则 Open Closed Principle 简称OCP 什么是开放封闭原则 软件实体(类,模块,方法...

  • 装饰器1

    开放封闭原则 讲装饰器之前我们先来了解一下开放封闭原则 开放封闭原则:软件实体应该是可扩展,而不可修改的。也就是说...

  • 替代工厂模式的方法

    前言 开放封闭原则,要求程序的扩展是开放的,程序的修改是封闭的。做到开放封闭的原则通常是针对抽象编程而不是具体编程...

  • CRM知识点整理(一)

    单例的实现方式 文件导入 类方法 反射的应用 importlib getattr 开放封闭原则 开放封闭原则(OC...

  • 第4章 考研求职两不误--开放-封闭原则

    开放-封闭原则 开放-封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。 这个原则其实是有两...

  • 设计原则

    1. OCP-开放封闭原则 面向扩展开放,面向修改封闭。关键点是抽象。 2. | SRP | 单一职责原则 | ...

  • python--通用装饰器

    写代码要遵循开放封闭原则 封闭:已实现的功能代码块开放:对扩展开发

网友评论

      本文标题:开放封闭原则

      本文链接:https://www.haomeiwen.com/subject/ixgbfxtx.html