zoukankan      html  css  js  c++  java
  • 面向对象设计原则

    面向对象设计的好处:可维护、可扩展、可复用、灵活性好。

    1、单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。

    2、开放-封闭原则:是说软件实体(类、模块、函数等) 对扩展开放、对修改封闭。此为面向对象设计的核心所在。

          面对需求变动时,可以保持相对稳定,从而不断推出新的版本。

    3、依赖倒置原则:抽象不应该依赖细节,细节应该依赖抽象。

           说白了,就是 针对接口编程,不要针对实现编程。

           高层模块(应用层) 与 低层模块(如数据访问层)之间依靠接口连接,而非强关联。

    4、里氏替换原则:子类 必须能够替换掉 它们的父类。

            说白了,就是父类定义的行为和属性,子类必须具备。

           例如 定义了个 鸟作为父类,鸟具有 飞行行为。企鹅、鸵鸟虽为鸟,但不能继承,因为它们不能飞,不能替换掉它们的父类。

    5、迪米特法则:如果两个类不必批次直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的的某一个方方的话,可以通过第三者转发这个调用。

     6、合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用继承。

         好处:1、对象的继承关系,在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系,所以

                         a. 父类实现中的任何变化,都会导致子类发生变化。

                         b.当复用子类时,若继承下来的子类不太适合解决新的问题,则父类必须重写。

                       因此继承方式,限制了灵活性,限制了复用。

                   2、合成/聚合方式,将有助于保持每个类被封装,并集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞然大物。

     

  • 相关阅读:
    内容绘制到Bitmap上不成功警示
    一些c++面试题目
    Windows Socket 主要API功能
    面试问题(一)
    函数指针与指针函数
    机器学习和数据挖掘的网站
    vs2010打开vs2008程序出现错误
    MATLAB将矩阵使用.txt文件格式保存
    指针实现值交换
    堆与栈的区别
  • 原文地址:https://www.cnblogs.com/qiupiaohujie/p/11967629.html
Copyright © 2011-2022 走看看