zoukankan      html  css  js  c++  java
  • OOP三大特性及几大设计原则

    封装:

    1.隐藏实现细节;
    2.恰当地公开接口;
    3.将接口和实现分开,增强可维护性;(实现细节改变时,使用该类的客户端程序不需要改变)


    继承

    1.描述联结类的层次模型;
    2.通过抽象,表达共性,实现类的重用;
    3.通过子类增加方法和属性以及重写方法,表达差异性;


    多态

    1.屏蔽子类的差异性,针对共性/接口编程;(向上转型)
    2.增强可扩展性;


    相关设计原则(设计模式一般遵守的原则):
    开闭原则(Open-Closed Principle, OCP):软件实体应该对扩展开放,对修改(对已有软件模块、特别是最重要抽象层模块的的更改)关闭。

    迪米特法则(对于封装)(Law of Demeter LoD)又叫做最少知识原则(Least Knowledge Principle,LKP):对象间尽量最少了解,彻底将API接口和具体实现相分离,模块间仅仅通过API进行通信。

    里氏代换原则(对于继承)(Liskov Substitution Principle,LSP):如果对于每一个类型为A的对象a,都有类型为B的对象b,使得A定义的所有程序P在所有对象a都替换成b时,程序P没有变化,那么B是A的子类型。

    合成/聚合复用原则(对于继承)(Composite/Aggregate Reuse Principle,CARP):尽量使用合成/聚合,尽量不要使用继承。


    依赖倒转原则(涉及多态)(Dependence Inversion Principle):抽象不应依赖于细节,细节应依赖于抽象;针对接口而非实现编程。

    三大特性介绍:

    http://www.cnblogs.com/hnrainll/archive/2012/09/18/2690811.html

    简单介绍:

    http://kakajw.iteye.com/blog/1637179

    介绍几大原则:

    http://blog.csdn.net/anders_zhuo/article/details/8949566

  • 相关阅读:
    term "JavaScript"
    Pro Git
    Pro Git
    Pro Git
    git
    flask
    OJ
    [蓝桥杯]Huffuman树
    priority_queue优先队列
    [蓝桥杯]高精度加法
  • 原文地址:https://www.cnblogs.com/itommy/p/10610390.html
Copyright © 2011-2022 走看看