本教程参考“大话设计模式”,作者:程杰
下面我们来详细分解:
动物矩形框:代表一个类Class,类图分为三层:
第一层,显示类的名称,如果是抽象类,则就用斜体显示。
第二层是类的特性,通常就是字段和属性。
第三层是类的操作,通常是行为。注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。
接口表示:
飞翔名称矩形框表示一个接口图,与类图的区别主要是顶端的<<interface>>显示。
第一行是接口名称,第二行是接口方法(飞()就是接口方法)。
接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了‘讲人话’的接口。
在类中表示:
interface IFly
{
void Fly();
}
继承表示:
继承关系用空心三角形+实线来表示(鸟继承于动物),简单记法:(实线空三角)我指向于你==>我继承你
类中表示(:冒号代表继承,brid继承于Animal):
pubic class bird:Animal
实现表示:
接口或是抽象类的实现:用空心三角形+虚线来表示(大雁实现飞翔的接口):简单记法:(虚线空三角)我指向你,我实现你。
类中表示:(:冒号,冒号后面跟的是普通类读成“继承”,冒号后面跟的是抽象类或是接口读作“实现”,冒号双重功能,继承与实现)
pubic class bird:Animal
关联关系表示:
关联关系:当一个类‘知道’另一类时,可以用关联关系。在类中表示为引用关系
关联关系用实线箭头表示.
简单记法:一条实线绑定我和你,我和你有亲密关系啦。
在类中表示:
class Penguin
{
private Climate climate;//在企鹅类Pengun中,引用到气候Climate对象
}
聚合关系表示:
聚合关系:大雁是群居动物,每只大雁都是属于一个雁群,一个雁群可以有多只大雁,它们之间就满足聚合(Aggregation)关系。
聚合表示一种弱的'拥有'关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分
(雁群可以包含大雁,但是大雁并不是雁群的不可分割的一部分,是一种弱的拥有关系)。
聚合关系用空心的菱形◇+实线来表示。
简单记法:菱形表示多,空心表示弱的关系,空心菱形聚合弱关系。
类中表示:
class WideGooseAggregate
{
private WideGoose[] arrayWideGoose;//在雁群WideGooseAggregate类中,有大雁数组对象arrayWideGoose;
或者:
private List<WideGoose> wideGooses;//在大雁WideGooseAggregate类中,有大雁集合对象
}
合成(组合)关系:
合成关系:也称组合关系,是一种强‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。
在这里鸟和其翅膀就是合成(组合)关系,因为它们是部分和整体的关系,它们之间是不能单独存在的,它们的生命周期是相同的。
合成关系用实心的菱形+实线来表示。
简单记法:实心即强拥有。实心菱形不可分(合成,组合)
类中表示:
class Brid
{
private Wing wing;
public Brid()
{
wing=new Wing();
}
}
依赖关系:
依赖关系:动物特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气和水以及食物等。
也就是说,动物依赖于氧气和水。他们之间的依赖关系(Dependency),用虚线箭头来表示。
简单记法:虽说你是虚(虚线)的,但是缺了你,我活不成。
类中表示:(表现在参数传递上):
abstract class Animal
{
public Metabolism(Oxygen,Water water)
{
}
}
编程是一门技术,更是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,只有这样才可以真正得到提高。写出优雅的代码是一件很爽的事情。
UML基础到这里结束,本教程如有不当之处,还望指出。
原文地址:http://blog.csdn.net/shiyuan17/article/details/9044971