`

UML(2)

    博客分类:
  • uml
 
阅读更多
类别:.Net + C# | 浏览(11212) | 2010-10-24 22:00:49
更多9
<iframe id="cproIframe3" src="http://cpro.baidu.com/cpro/ui/uijs.php?rs=0&amp;tu=u712809&amp;tn=text_default_728_90&amp;n=yongfa365_cpr&amp;adn=3&amp;rsi1=90&amp;rsi0=728&amp;rad=&amp;rss0=%23FFFFFF&amp;conBW=0&amp;rss1=%23FFFFFF&amp;conOP=0&amp;rss2=%230000FF&amp;titFF=%25E5%25AE%258B%25E4%25BD%2593&amp;titFS=12&amp;titTA=left&amp;rss3=%23444444&amp;rss4=%23008000&amp;rss5=&amp;rss6=%23e10900&amp;rsi5=4&amp;ts=1&amp;at=103&amp;ch=0&amp;cad=1&amp;aurl=&amp;rss7=&amp;cpa=1&amp;fv=11&amp;cn=0&amp;if=16&amp;word=http%3A%2F%2Fwww.yongfa365.com%2FItem%2FUML-Association-Dependency-Aggregation-Composition-Realization-Generalization.html&amp;refer=https%3A%2F%2Fwww.google.com.hk%2F&amp;ready=1&amp;jk=25d04337bd755f02&amp;jn=3&amp;lmt=1365336694&amp;csp=1440,900&amp;csn=1440,860&amp;ccd=32&amp;chi=1&amp;cja=true&amp;cpl=11&amp;cmi=54&amp;cce=true&amp;csl=en-US&amp;did=3&amp;rt=8&amp;dt=1365386556&amp;ev=50331648&amp;c01=0&amp;prt=1365386555570&amp;i3=f&amp;anatp=0&amp;stid=0&amp;lunum=6" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" align="center,center" width="728" height="90"></iframe>

大话设计模式上的一个图,我用EA画出来的:
 大话设计模式类图

UML中的6大关系相关英文及音标:

 依赖关系

 

dependency

 

[di'pendənsi]
 关联关系

 

association

 

 [ə,səuʃi'eiʃən]
 聚合关系

 

aggregation

 

 [ˌægrɪˈgeɪʃən]
 组合关系 composition  [,kɔmpə'ziʃən]
 实现

 

realization

 

 [,ri:əlɪ'zeɪʃən]
 泛化

 

generalization

 

 [,dʒenərəlɪ'zeɪʃən]

 

 

UML中的6大关系简单解释:

  1. 关联:连接模型元素及链接实例,用一条实线来表示;
  2. 依赖:表示一个元素以某种方式依赖于另一个元素,用一条虚线加箭头来表示;
  3. 聚合:表示整体与部分的关系,用一条实线加空心菱形来表示;
  4. 组成:表示整体与部分的有一关系,用一条实线加实心菱形来表示;
  5. 泛化(继承):表示一般与特殊的关系,用一条实线加空心箭头来表示;
  6. 实现:表示类与接口的关系,用一条虚线加空心箭头来表示;

注意:泛化关系和实现关系又统称为一般关系;
总之:一般关系表现为继承或实现(is a),关联关系、聚合关系、合成/组合关系表现为成员变量(has a),依赖关系表现为函数中的参数(use a);

转自:http://www.cnblogs.com/ForEverKissing/archive/2007/12/13/993818.html

UML中的6大关系详细说明:

1、关联关系:
  含义:类与类之间的连结,关联关系使一个类知道另外一个类的属性和方法;通常含有“知道”,“了解”的含义
体现:在C#中,关联关系是通过成员变量来实现的;
方向:双向或单向;
图示:实线 + 箭头;箭头指向被关联的类;
举例:“渔民”需要知道“天气”情况才能够出海
   //公司关联雇员
public class Company
{
    private Employee employee;
    public Employee GetEmployee()
    {
        return employee;
    }
    public void SetEmployee(Employee employee)
    {
        this.employee = employee;
    }
    //公司运作    
    public void Run()
    {
        employee.StartWorking();
    }

}

//A关联B
class A
{
    B b = new B();
}
class B
{
}

2、依赖关系:
  含义:是类与类之间的连接,表示一个类依赖于另外一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系;
体现:在C#中体现为局部变量、方法/函数的参数或者是对静态方法的调用;
方向:单向;
图示:虚线 + 箭头;
举例:人依赖于水和空气;汽车依赖汽油
    //人划船,人依赖于船
public class Person
{
    //划船
    public void Oarage(Boat boat)
    {
        boat.Oarage();
    }


//A依赖于B
class A
{
    public void Function(B b)
    { }
}
class B
{
}

 

3、聚合关系:
  含义:是关联关系的一种,是一种强关联关系;聚合关系是整体和个体/部分之间的关系;关联关系的两个类处于同一个层次上,而聚合关系的两个类处于不同的层次上,一个是整体,一个是个体/部分;在聚合关系中,代表个体/部分的对象有可能会被多个代表整体的对象所共享;
体现:C++中,聚合关系通过将被聚合者的(数组)指针作为内部成员来实现的;
方向:单向;
图示:空心菱形 + 实线 + 箭头;箭头指向被聚合的类,也就是说,箭头指向个体/部分;
举例:鸭群与鸭子具有聚合关系;汽车由引擎、轮胎以及其它零件组成,因为汽车坏掉了,没有坏掉的引擎,轮胎和其他零件还可以继续使用。

4、组合关系:
  含义:它也是关联关系的一种,但它是比聚合关系更强的关系.组合关系要求聚合关系中代表整体的对象要负责代表个体/部分的对象的整个生命周期;组合关系不能共享;在组合关系中,如果代表整体的对象被销毁或破坏,那么代表个体/部分的对象也一定会被销毁或破坏,而聚在合关系中,代表个体/部分的对象则有可能被多个代表整体的对象所共享,而不一定会随着某个代表整体的对象被销毁或破坏而被销毁或破坏;
体现:在C#中,组合关系是通过成员变量来实现的;
方向:单向;
图示:实心菱形 + 实线 + 箭头;箭头指向代表个体/部分的对象,也就是被组合的类的对象;
举例:一个人由头、四肢、等各种器官组成,因为人与这些器官具有相同的生命周期,人死了,这些器官也挂了;

5、泛化关系:
  含义:它表示一个更泛化的元素和一个更具体的元素之间的关系;也就是通常所说的类的继承关系;
体现:在C#中,泛化关系通过类的继承来实现的;
方向:单向;子类继承父类;
图示:空心箭头 + 实线;箭头指向父类;
举例:动物下面可以分为哺乳动物,脊椎动物,爬行动物等

6、实现关系:
  含义:它指定了两个实体之间的一份合同;即:一个实体定义一份合同,另外一个实体则保证履行该合同;
体现:在C#中,实现关系通过类实现接口来实现的,即:一个类实现某个接口;
方向:单向;子类实现接口;
图示:空心箭头 + 虚线;箭头指接口向接口;
举例:唐老鸭(对象)会说话(接口),因为一般鸭子不会说话,所以不会将说话这个方法给一般的鸭子带上;超人(对象)会飞(接口)

转自:http://www.cnblogs.com/aicro/archive/2010/08/23/1806584.html

分享到:
评论

相关推荐

    eclipse UML2插件

    Eclipse UML2插件是Eclipse集成开发环境(IDE)的一个强大工具,它使得软件开发者能够方便地创建、编辑和管理统一建模语言(UML)模型。这个插件扩展了Eclipse的功能,允许用户在开发过程中直接进行UML建模,从而...

    UML2软件建模入门与提高.rar

    《UML2软件建模入门与提高》是一个涵盖了软件开发中的统一建模语言(Unified Modeling Language,简称UML)的全面教程。UML是软件工程领域广泛应用的一种可视化建模工具,用于描述、构造和文档化软件系统的设计。本...

    uml2tools for eclipse

    《Eclipse插件uml2tools详解及应用》 在软件开发过程中,UML(统一建模语言)作为一种标准的建模工具,被广泛用于系统分析和设计阶段,它能够帮助开发者直观地理解复杂的系统结构。Eclipse作为一款流行的开源集成...

    uml2 plugin for eclipse

    《Eclipse中的UML2插件详解》 在软件开发领域,统一建模语言(Unified Modeling Language,简称UML)是一种被广泛采用的可视化建模工具,它为开发者提供了描绘系统设计、流程和结构的标准符号。Eclipse作为一款强大...

    UML2工具箱(强烈建议UML玩家看看)

    《UML2工具箱》是一本专为UML爱好者和从业者设计的学习指南,它深入浅出地介绍了UML2这一强大的建模语言。UML(统一建模语言)是软件工程领域广泛使用的可视化建模工具,它允许开发者、设计师和项目团队通过图形方式...

    mdt-uml2-runtime-2.2.1Eclipse的UML插件

    MDT-UML2-Runtime-2.2.1是Eclipse集成开发环境中的一款重要的插件,专注于支持统一建模语言(UML)的运行时环境。这个插件为Eclipse用户提供了创建、编辑和理解UML模型的强大工具,极大地提升了软件开发过程中建模的...

    UML2.zip_uml _uml2

    **UML2.zip_uml _uml2** UML(统一建模语言)是软件工程领域中的一种标准化建模语言,用于可视化、构建和文档化软件系统。UML2是其第二个主要版本,它在UML1的基础上进行了大量扩展和改进,以适应现代软件开发的...

    js uml2框架

    JavaScript UML2框架,简称js uml2,是一种专门用于在Web环境中绘制统一建模语言(UML)图的工具。UML是一种广泛使用的建模语言,它为软件开发提供了标准化的方法来描述系统的设计、结构和行为。js uml2框架使得...

    UML2规范参考 Object Management Group Unified Modeling Language (OMG UML)

    《UML2规范参考:Object Management Group统一建模语言》 UML(Unified Modeling Language),统一建模语言,是软件开发领域中一种重要的建模工具,由Object Management Group(OMG)制定并维护。UML2是其最新的...

    UML2入门级实战教程和UML建模工具操作手册

    本教程主要针对UML2的入门学习,涵盖了从基本概念到实际应用的多个方面,旨在帮助初学者快速理解和掌握这一强大的建模语言。 **第一章 理解面向对象** 面向对象编程(Object-Oriented Programming,OOP)是现代...

    UML 2 Certification Guide

    《UML 2认证指南》是一本专门针对OMG认证的UML专业人员(OCUP)考试的学习材料,它涉及了UML(统一建模语言)的核心概念和中级概念。这本书通过对UML 2的元模型进行详细解析,帮助读者掌握UML的基本知识点和进阶知识...

    eclipse中的uml类图插件jar包

    org.eclipse.uml2.uml:这是Eclipse UML插件的核心库,提供了UML类图的基本元素,如类、接口、关联、活动图等。它还包含了用于创建和编辑UML模型的编辑器。 org.eclipse.uml2.uml.diagram:这个库包含了用于创建和...

    UML 2 for Dummies

    •Uses friendly, easy-to-understand For Dummies style to help readers learn to model systems with the latest version of UML, the modeling language used by companies throughout the world to develop ...

    UML2[1].0设计手册

    《UML2[1].0设计手册》是IT领域中一本重要的参考资料,专注于统一建模语言(Unified Modeling Language)的最新版本——UML2.0的详细解析与应用指南。UML作为软件工程中用于系统建模的标准语言,能够帮助开发者、...

    UML2.rar_ uml mdl_UML mdl_uml _uml .mdl_visual c

    **UML2.rar_uml_mdl_UML_mdl.uml_.mdl_visual_c** 本文将深入探讨UML(统一建模语言)及其在软件开发中的应用,特别是在MDL(Model Driven Development,模型驱动开发)和Visual C++环境中的作用。UML是一种标准化...

    UML 2工具包.zip

    《UML 2工具包》是一份非常有价值的资源,它包含了一系列关于统一建模语言(Unified Modeling Language,简称UML)的详细资料。UML是一种标准化的建模语言,广泛应用于软件工程领域,用于可视化、规格化和构建复杂的...

    Trufun UML2.x建模工具操作指南

    ### Trufun UML2.x建模工具操作指南知识点总结 #### 一、Trufun UML2.x 建模工具概述 Trufun UML2.x是一款专为企业级应用设计的统一建模语言(Unified Modeling Language, UML)建模工具。随着软件开发从传统的...

    startUML2破解版下载

    startUML一款程序开发原型设计工具,可以设计用例图,类图等......

    UML2初学好书-(“UML Distilled”:Martin Fowler)-中英文合辑

    UML2初学好书-(“UML Distilled”:Martin Fowler)-中英文合辑 EN::(UML Distilled) Third Edition(2003)--CHM格式 , zhTW:(UML 精华第三版) /物件模型语言标准简介---PDF格式 [物件模型语言标准简介初学好书-UML-2...

Global site tag (gtag.js) - Google Analytics