• 面向对象中多个对象之间的关系


     
    面向对象中多个对象之间的关系
     
      当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系。利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体。一个设计良好的类,应该是兼顾信息和行为,并且是高内聚。而不同的类之间,应该尽量做到松耦合。
     
      由于我们面对的系统或者需要解决的问题经常是复杂的、高度抽象的,我们创建的多个对象往往是有联系的,通常对象之间的关系可以分为以下几类:
     
    继承
      具有层次关系或者可以用树状结构来描述对象关系时,可以考虑使用继承,继承的好处是子类可以容易的使用父类的属性和方法,缺点是子类和父类绑定在一起,不利于后期维护。
     
    在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中依赖通常使用虚线箭头表示。
     
  • 相关阅读:
    Caused by: java.lang.NumberFormatException: For input string: "18446744073709551615"
    As/IDEA json自动生成java bean
    OpenSSL + Windows 下载安装
    Https双向认证Android客户端配置
    Linux SSH & SCP命令
    解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案
    echarts 怎样去掉白色边框线 和怎样去除背景中的网格
    echarts 去掉网格线
    Echarts学习记录——如何去掉网格线及网格区域颜色
    JS删除String里某个字符的方法
  • 原文地址:https://www.cnblogs.com/geek6/p/4293514.html
Copyright © 2020-2023  润新知