`

Class Diagram概念辨析

 
阅读更多

1. 两种关联关系的特例:

 

    1)  聚合 Aggregation ——

Aggregation: b can live without its context (object of A).
============================================
==C++==
class B{
    B* b;
}
==java==
class B{
    B b;
    public A(B b){
       this.b = b;
    }
}

    聚合是整体与部分、拥有的关系,即 has-a 的关系,此时整体和部分之间可以分离,他们可以具有各自的生命周期 ,部分可以属于多个整体对象,也可以为多个整体对象共享;比如计算机与 CPU 、公司和员工的关系等;表现在代码层面上,和关联关系一致,只能从语义级别区分。



    

 

    2)  组合 Composition ——

Composition: b's lifetime is up to its context (object of A).
==C++==
class A{
    B b;
}
==java==
class A{
    B b;
    public A(){
       b = new B();
    }
}

    组合也是关联关系的一种特例,他体现一种 contains-a 关系,这种关系比聚合关系更强,也称为强聚合;它同样体现为整体和部分见的关系,但此时整体和部分是不可分割的, 整体的生命周期结束时部分的生命周期也结束 。比如,你和你的大脑。在代码层面上,和关联关系一样,只能从语义级别区分。



    

 

2. 几个例子:

 

演出售票系统

      在用例驱动的开发过程中,通过分析各个用例及参与者得到类图。分析用例图的过程中需要根据面向对象的原则设计类和关系,根据用例的细节设计类的属性和操作



 

 

Composite模式



 

 

 

    * 从演出售票系统理解 multiplication 的使用—— SubscriptionSeries Ticket 之间的多重性是“ 0...1 ”和“ 3...6 ”:

    A. 特定的 1 SubscriptionSeries 实例,在数据表中找得到它对应的 3...6 Ticket 实例;

    B. 特定的 3...6 Ticket 实例,在数据表中找得到他们对应的 1 SubscriptionSeries ;或者 0 SubscriptionSeries ,因为可能这些 Ticket 来自 IndividualReservation

  • 大小: 15.1 KB
  • 大小: 15 KB
  • 大小: 23.4 KB
  • 大小: 37.9 KB
  • 大小: 9.1 KB
  • 大小: 27.6 KB
分享到:
评论

相关推荐

    UML class diagram

    UML class diagram

    C# and UML class diagram

    泛化关系,也称为继承,表示“is-a”的逻辑关系,如`public class DerivedClass : BaseClass`,表明DerivedClass是BaseClass的一种特殊情况。在UML中,继承用带空箭头的直线表示。 依赖关系是一种临时性的关联,...

    EXT JS 3.0 Core Class Diagram

    EXT JS 3.0 Core Class Diagram 是一个关于EXT JS库核心类结构的图表,它展示了EXT JS 3.0版本中的主要组件和它们之间的关系。EXT JS是一个强大的JavaScript库,主要用于构建富客户端Web应用程序,其核心功能包括...

    ClassDiagram.cd

    程序设计大作业的类图描述,用于展示各个类之间的关系。方便阅读相关的代码。通过类图可以完成一个程序的总体架构,并对各个架构进行分析和编写。类图还可以展示类的成员,通过点击类的成员可以直接定位到相应代码...

    AS3classDiagram.air

    AS3classDiagram.airAS3classDiagram.airAS3classDiagram.air

    Class Diagram0.asta

    Class Diagram0.asta

    qt class diagram

    ### Qt 类图关系详解 #### 引言 在软件开发领域,Qt 是一个跨平台的应用程序框架,由 Trolltech(现为 The Qt Company)开发,主要用于构建图形用户界面(GUI)。Qt 支持多种操作系统,如 Windows、Linux、macOS ...

    ActionScript Class Diagram

    as3 类关系图 jpg格式,as3 类关系图 jpg格式,as3 类关系图 jpg格式,as3 类关系图 jpg格式,as3 类关系图 jpg格式

    UML簡介_Class Diagram.pdf

    其中,类图(Class Diagram)是UML中最常用的一种图表类型,用于展示系统中类的静态结构及其相互关系。本文将详细介绍类图的基本概念、组成元素以及如何使用类图来描述系统。 #### 二、类图目的与作用 类图的主要...

    eMule 0.27c Class Diagram.pdf

    本文主要基于`eMule 0.27c Class Diagram.pdf`文档,对eMule 0.27c版本的源代码体系结构和类图进行详细的解析,并结合部分源代码片段来探讨eMule的核心组件和工作原理。 #### 二、eMule源代码架构简介 ##### 1. ...

    Qt5.1_ClassDiagram

    Qt5类关系图,基于Qt5.1版本,对于系统学习Qt5很有帮助。

    Creating_Class_Diagram.swf

    Creating_Class_Diagram.swf

    UMLxuexi.rar_class diagram_类图

    本文将详细探讨类图的概念、组成要素以及如何使用类图进行系统建模。 类图是UML中最为基础的图形之一,它以图形方式展示了类的结构,包括类的属性、操作、继承关系、关联关系等。类图的主要构成元素有以下几个部分...

    UML建模之类图(ClassDiagram,UML图)

    方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。类图展示了系统的逻辑结构,类和接口的关系。二、类的构成类主要有属性和方法构成。比如商品属性有:名称、价格、高度、...

    E03.1 class, deployment diagram

    E03.1 class, deployment diagram

    C#实现的Diagram

    在编程领域,Diagram是一种强大的工具,它用于可视化地表示数据、流程或系统结构。C#是一种广泛使用的面向对象的编程语言,尤其在Windows应用程序开发中占据主导地位。本项目是用C#实现的一个Diagram编辑器,它允许...

    DiagramDesigner

    1. **类图(Class Diagram)**:类图是UML中最常见的图表类型,用于表示类、接口以及它们之间的关系。DiagramDesigner允许用户定义类的属性、方法,并通过连线展示继承、实现、关联等关系。 2. **对象图(Object ...

    Voodoo UML Class Diagram Editor-开源

    Voodoo UML Class Diagram Editor是一款基于C++开发的开源UML类图编辑工具,它利用Tcl/Tk作为图形用户界面(GUI)的部分。这款编辑器的目的是提供一个直观且功能丰富的平台,使得软件开发者和设计者能够方便地创建、...

    sequence-diagram.zip

    《序列图绘制工具sequence-diagram-js的深度解析与应用》 序列图,作为一种重要的系统建模工具,广泛应用于软件设计和开发中,它清晰地展示了系统内各对象间交互的顺序。sequence-diagram-js是一个基于JavaScript的...

Global site tag (gtag.js) - Google Analytics