zoukankan      html  css  js  c++  java
  • 敏捷开发原则-OCP(开放-封闭原则)

    OCP(The Open Closed Principle):

      定义:

            对拓展开放:也就是说模块的行为是可扩展的,当应用程序中的需求发生改变时,我们可以使模块表现出全新的或与以往不同的行为。

            对更改封闭:模块的源代码是不可更改的,已经实现的功能源代码任何人都不允许修改。

      开放针对的是新增的功能,更改针对的是已有的功能,所以这2个特征其实并不冲突,对新增拓展,对已有封闭。

      

      

    一个简单的例子,在Client类中使用Service类,如果我们有多种不同的Service的实现需要在Client中处理,那么Client中就要使用Switch或者大量的if...else语句去判断

    不同场景的时候要使用哪种Service,而且当Service的种类新增时,那么相应的Client中的语句也要做出相应的调整。

    一个遵循OCP的设计,ServiceInterface是一个接口或者一个抽象类,Client中去使用这个抽象类,而DataSourceService和SocketService是ServiceInterface的派生类,那么不论派生类

    中做了如何修改,或者新增其他的派生类,Client类中无需再对应的做出其他任何改动。

      结论:在许多方面,OCP都是面向对象设计的核心所在,遵循这个原则可以带来灵活性,可重用性及可维护性等好处。

  • 相关阅读:
    RTT学习之sensor设备
    RTT学习之PWM、ADC设备
    RTT学习之SPI设备
    rtt学习之线程间同步与通信
    RTT之时钟管理
    ASP.NET 中整合JavaScript的技巧
    CSS弹出背景半透明窗口
    JavaScript实现继承的混合方式
    jquery-仿flash的一个导航栏特效
    html5与css3学习实践--基础的内容划分标签
  • 原文地址:https://www.cnblogs.com/culushitai/p/10265152.html
Copyright © 2011-2022 走看看