在看设计模式的过程中,我看到了很多设计模式都是采用UML图来表示,用UML图画出的图很好看,能把整个设计模型完整的展示在我们面前。UML图的设计有什么特点呢?我看到大话设计模式这本书有相关介绍,总结了一下,相信大家看了这些基础知识,自己也能设计出自己程序的UML图,下面所有图均由Visio实现。
1、类图的实现
我们直接上图吧。首先看到‘动物’矩形框,它就代表一个类(class)。类图分为三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或者行为。注意,前面的符号,'+'表示public,'-'表示private,‘#’表示proctected。
2、接口图的实现
1
2 3 4 |
iterface IFly
{ void Fly(); } |
接下来看看接口图的表示,与类图的区别主要是顶端有<<interface>>显示。第一行的接口名称,第二行是接口方法。
3、类与类,类与接口之间的关系。
首先是继承关系,继承关系用空心三角形+实线表示。具体如下图所示。
然后是类与接口的关系。我举的几种鸟中,大雁是最能飞的,我让它实现了飞翔接口。实现接口用空心三角形+虚线表示。具体如下图所示:(在Visio中貌似是直线+小圆圈)
1
2 3 4 5 6 7 8 9 |
class Bird: Animal
//继承动物类 { } class WideGoose: IFly //实现飞翔接口 { } |
我们再来看看关联关系,例如企鹅和气候两个类,企鹅是很特别的鸟,会游泳,不会飞。更重要的是,他与气候有很大的关联,总之,企鹅需要知道天气的变化,需要了解气候规律。当一个类知道另一个类时,可以用关联。关联用实线箭头表示。如下图所示(在Visio中是两个星号和直线)
我们再来看看合成,合成也成为组合是一种强的‘拥有’关系,体现了严格的部分和整体关系,部分和整体的生命周期是一样了。在这里鸟和其翅膀就是合成广西,因为它们是部分和整体关系,并且翅膀和鸟的生命周期是相同的。合成关系在Visio的表示是菱形+实现表示。另外连接两端有数字,是基数,表明这一端的类可以有几个实例,很显然,一个鸟应该有两个翅膀。
动物几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物依赖氧气和谁。他们之间是依赖关系,用虚线箭头来表示。
1
2 3 4 5 6 7 |
abstract
class Animal
{ public Metabolism(Oxygen oxygen, Water water) { } } |
关于UML图操作Visio作图如下链接。
http://www.qdgw.com/zhuantiweb/jpkc/2009/rjkf/xmwd/Visio_UmlModel.htm