UML类图
转自:http://hi.baidu.com/myaspdotnet/blog/item/6562b00171e29b051c95838e.html
1.11 UML类图
小菜:“对了,我时常在一些技术书中看到这些类图表示,简单的还看得懂,有些标记我很容易混淆。要不你给我讲讲吧。”
大鸟:“这个其实多看多用就熟悉了。我给你举一个例子,来看这样一幅图,其中就包括了UML类图中的基本图示法。”
UML类图图示样例
大鸟:“首先你看那个‘动物’矩形框,它就代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。”
大鸟:“然后注意左下角的‘飞翔’,它表示一个接口图,与类图的区别主要是顶端有<<interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了‘讲人话’的接口。”
小菜:“为什么要是‘讲人话’?”
大鸟:“鸭子本来也有语言,只不过只有唐老鸭是能讲人话的鸭子。”
小菜:“有道理。”
大鸟:“接下来就可讲类与类,类与接口之间的关系了。你可首先注意动物、鸟、鸭、唐老鸭之间关系符号。”
小菜:“明白了,它们都是继承的关系,继承关系用空心三角形+实线来表示。”
大鸟:“我举的几种鸟中,大雁是最能飞的,我让它实现了飞翔接口。实现接口用空心三角形+虚线来表示。”
|
|
|
|
|
|
class WideGoose : IFly
{
}
|
|
|
|
|
大鸟:“你看企鹅和气候两个类,企鹅是很特别的鸟,会游不会飞。更重要的是,它与气候有很大的关联。我们不去讨论为什么北极没有企鹅,为什么它们要每年长途跋涉。总之,企鹅需要‘知道’气候的变化,需要‘了解’气候规律。当一个类‘知道’另一个类时,可以用关联(association)。关联关系用实线箭头来表示。”
class Penguin : Bird
{
private Climate climate;
大鸟:“我们再来看大雁与雁群这两个类,大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁。所以它们之间就满足聚合(Aggregation)关系。聚合表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分[DPE](DPE表示此句摘自《设计模式》(第2版),详细摘要说明见附录二)。聚合关系用空心的菱形+实线箭头来表示。”
class WideGooseAggregate
{
private WideGoose[] arrayWideGoose;
}
大鸟:“合成(Composition,也有翻译成‘组合’的)是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样[DPE]。在这里鸟和其翅膀就是合成(组合)关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。合成关系用实心的菱形+实线箭头来表示。另外,你会注意到合成关系的连线两端还有一个数字‘1’和数字‘2’,这被称为基数。表明这一端的类可以有几个实例,很显然,一个鸟应该有两只翅膀。如果一个类可能有无数个实例,则就用‘n’来表示。关联关系、聚合关系也可以有基数的。”
class Bird
{
private Wing wing;
public Bird()
{
wing = new Wing();
}
}
大鸟:“动物几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖于氧气和水。他们之间是依赖关系(Dependency),用虚线箭头来表示。”
abstract class Animal
{
public Metabolism (Oxygen oxygen,Water water)
{
}
}
小菜:“啊,看来UML类图也不算难呀。回想那天我面试题写的代码,我终于明白我为什么写得不成功了,原来一个小小的计算器也可以写出这么精彩的代码,谢谢大鸟。”
大鸟:“吼吼,记住哦,编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,只有这样才可以真正得到提高。写出优雅的代码真的是一种很爽的事情。UML类图也不是一学就会的,需要有一个慢慢熟练的过程。所谓学无止境,其实这才是理解面向对象的开始呢。”
分享到:
相关推荐
在JDK中,UML类图可以帮助我们理解和分析Java类库的结构,包括类、接口、继承关系、关联、聚合和组合等。 **类图的基本元素** 1. **类(Class)**: 类图的核心元素,表示具有共同属性、操作和关系的一组对象。在...
在"spring源码全部uml类图"中,我们可以深入探讨Spring框架的内部结构和设计模式。 首先,Spring框架的核心组件包括IoC(Inversion of Control,控制反转)容器和AOP(Aspect-Oriented Programming,面向切面编程)...
在IT行业中,UML(统一建模语言)是一种标准的...学习这个案例,你可以了解如何将业务逻辑转化为UML类图,再将类图转换为实际的C++代码。这有助于提升你对面向对象编程的理解,同时也能掌握UML在软件工程中的实际应用。
"eclipse画UML类图的jar包.zip"是一个包含Eclipse插件的压缩文件,这些插件允许用户在Eclipse环境中绘制UML类图。UML类图是UML中的核心元素,它用于表示系统的静态结构,包括类、接口、继承关系、关联关系等。 这个...
### UML类图关系详解 #### 一、引言 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化语言,它帮助开发者理解和设计系统。其中,UML类图是最常用的一种图示方式,用于描述系统...
下面我们将详细解释UML类图中各符号的含义。 1. 类(Class):在UML类图中,类通常用三层矩形表示。第一层写类的名称,如果类是抽象的,则名称以斜体显示。第二层列出类的属性(fields)和字段,第三层列出类的方法...
综上所述,UML类图中的类是系统建模的关键元素,它们通过抽象类和具体类的区分来表达层次结构,通过主动类和非主动类来描述行为发起者和接收者。属性和操作则构成了类的核心特性,帮助我们理解和设计系统的结构和...
uml 类图实例 oom powerdesigner 绘制
从UML类图到关系数据库表的代码生成方法研究 UML(统一建模语言)是一种用于软件系统建模的标准化建模语言,它的类图是其中最常用的一种图示,用于表示系统中类的静态结构。关系数据库是目前主流的数据库管理系统,...
本文将深入探讨"登录图"在UML类图中的应用,以及如何通过类图来描绘和理解复杂的系统结构。 首先,UML类图是UML中的核心元素之一,它提供了一种图形化的方式来表示系统的静态结构。类图展示了类、接口、对象之间的...
网上书店UML类图建模 基于提供的文件信息,我们可以总结出以下知识点: 1.UML类图建模: UML(Unified Modeling Language)是一种通用的建模语言,用于描述、设计和文档化软件系统。UML类图是一个静态结构图,...
《图书管理系统的UML类图解析》 在软件开发领域,UML(统一建模语言)是一种标准化的建模工具,用于描绘系统的设计和结构。本篇将详细讲解基于UML类图的图书管理系统的构建过程,以帮助读者理解如何通过类图来描述...
java设计模式 简单工厂模式uml类图,一张图就让你秒懂简单工厂模式
酒店管理信息系统UML类图 酒店管理信息系统UML类图是酒店管理信息系统的设计蓝图,该系统旨在自动化酒店的日常管理行为。该系统包括三个操作角色:酒店管理员、前台服务员和经理,每个操作角色的权限不同。系统的...
在这个“23种经典设计模式UML类图汇总”中,你将找到有关这些模式的详细解释和它们在UML中的表示方式。 1. **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。UML类图中,单例类通常有一个私有的构造...
进销存管理系统是一种广泛应用于商业运营中的软件工具,主要用于跟踪和管理商品的进货、销售和库存情况。在软件设计过程中,UML...同时,UML类图也提供了良好的沟通工具,使得项目团队成员能够共同理解和改进设计方案。
UML类图是UML中最基础的图表之一,它用于描绘类的结构和类之间的关系,包括继承、关联、聚合、组合等。通过类图,开发者可以直观地理解系统的设计,便于代码的分析和重构。在Java开发过程中,UML类图可以帮助设计...
### UML类图关系详解 #### 一、引言 UML(Unified Modeling Language,统一建模语言)是一种广泛应用于软件工程领域的图形化规范,用于描述软件系统的结构和行为。UML类图作为UML中的一种重要图表类型,主要用于...
java设计模式 工厂方法模式uml类图,一张图就让你秒懂工厂方法模式
在UML类图中,主要元素包括: 1. 类(Class):类是一个复杂的数据类型,包含数据(属性)和操作(方法)。在UML图中,类通常用三层矩形表示,第一层写类名,第二层列属性,第三层列方法。类的访问修饰符(public、...