zoukankan      html  css  js  c++  java
  • 面向对象中多个对象之间的关系

      当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系。利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体。一个设计良好的类,应该是兼顾信息和行为,并且是高内聚。而不同的类之间,应该尽量做到松耦合。

      由于我们面对的系统或者需要解决的问题经常是复杂的、高度抽象的,我们创建的多个对象往往是有联系的,通常对象之间的关系可以分为以下几类:

    • 继承

    具有层次关系或者可以用树状结构来描述对象关系时,可以考虑使用继承,继承的好处是子类可以容易的使用父类的属性和方法,缺点是子类和父类绑定在一起,不利于后期维护。

    在UML中,继承通常是使用空心三角+实线来表示。

    • 关联

    如果A和B有关联,那么说明A内部可能会使用到B,但是A和B本身还是独立的关系,通常B会作为A的成员变量存在。

    在UML中,关联通常是使用实线箭头来表示,箭头方向是A指向B。

    • 聚合

    如果A和B是聚合的,那么说明A和B是“弱拥有”的关系,它们不是独立的关系,但是A和B的生命周期可以使不同的,通常B也是会作为A的成员变量存在。

    在UML中,聚合通常是使用空心菱形+实线箭头来表示。

    • 组合

    如果A和B是组合的,那么说明A和B是“强拥有”的关系,它们不是独立的关系,并且生命周期也是一样的,通常B作为A的成员变量存在,并且在A的构造函数中进行初始化。

    在UML中,组合通常是使用实心菱形+实线箭头表示。

    • 依赖

    如果A和B是依赖的关系,说明B一般不单独使用,它需要在A中才会发挥作用,通常B是作为A中的方法参数存在的。

    在UML中依赖通常使用虚线箭头表示。

        
    作者:李潘
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    左滑删除
    关于ajax里边不能识别$(this)的解决方法
    前端面试常见问答
    推荐10 个短小却超实用的 JavaScript 代码段
    jquery实现滚动到页面底部时无限加载内容的代码
    理解MVC,MVP和MVVM设计模式
    JS toLowerCase()方法 toUpperCase()方法
    前端知识体系
    JavaScript易错知识点整理
    HttpUrlConnection Post请求
  • 原文地址:https://www.cnblogs.com/wing011203/p/2559223.html
Copyright © 2011-2022 走看看