zoukankan      html  css  js  c++  java
  • 开闭原则

    开闭原则

    定义:软件实体如(类、模块和函数)应该对扩展开发,对修改关闭 

    开闭原则可以提高代码复用性,可维护性,并且符合面向对象开发的要求

    理解:开闭原则视乎是一个模糊的概念,它只告诉我们对扩展开放,对修改关闭,可是到底如何才能做到对扩展开放,对修改关闭,并没有明确的告诉我们。So,我们可以将它理解为总纲,我们遵循设计模式其他原则,以及使用23种设计模式的目的就是遵循开闭原则。也就是说,只要我们对其它5项原则遵守的好了,设计出的软件自然是符合开闭原则的。

    对其他原则的遵守:

    对设计原则的遵守不是刻板的遵守他们,而是根据实际情况灵活运用。对他们遵守在合理的范围,就是良好的设计。

     

     

    设计1、设计2属于良好的设计,他们对六项原则的遵守程度都在合理的范围内;设计3、设计4设计虽然有些不足,但也基本可以接受;

    设计5则严重不足,对各项原则都没有很好的遵守;

    设计6则遵守过渡了

    设计5和设计6都是迫切需要重构的设计。

    如何对其他原则的遵守:

    我们以设计一个图书馆项目为例,这是一个新的项目,顾客的需求是借书,还书,图书管理员的需求是管理书籍,对用户账户管理。

    单一职责原则:(主要从业务角度分析,建立业务细粒)

    业务角度分析,人员分读者,管理员;

    读者的行为有借书还书;

    读者实体类

    书籍实体类

    关联表借书

    关联表还书

    还书又出现逾期的。。。。。。

    管理员的行为有管理图书,管理用户

    管理员实体类

    对图书的行为有增删改查

    对用户的行为有冻结解冻通知

    冻结关联表。。。。。。。

    接口隔离原则:(从系统架构角度分析,建立接口细化)

    在业务分析完成后建立接口,以管理员对图书的管理为例;

    BookManage中包含增删改查的接口;

    依赖倒置原则:

    核心思想是面向接口编程遵守接口隔离原则即可实现。

    里氏替换原则:

    核心是对继承的约束;

    1.子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法。

    2.子类中可以增加自己特有的方法。

    3.当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。

    4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

    迪米特原则:

    其主要的目的是为了约束类与类之间的关系(依赖,关联,聚合,组合);

  • 相关阅读:
    ExtJs中动态加载机制研究(转)
    ExtJs4 学习3 combox自动加载的例子
    Extjs 4学习2
    ExtJS 4学习
    javascript学习(知识点整理)
    ExtJS智能提示工具spket安装与破解
    eclipse慢 优化(转)
    疯狂学习java web5(SSI框架)
    疯狂学习java web4(jsp)
    疯狂学习java web3(javaScript)
  • 原文地址:https://www.cnblogs.com/jikjk/p/10507782.html
Copyright © 2011-2022 走看看