UML之类图
类图概要
※类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法
※类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象
![](http://images0.cnblogs.com/blog/432805/201308/14170247-755abf489987433ba42c09fef8d18ccb.png)
类图中的事物及解释
※从上到下分为三部分,分别是类名、属性和操作。类名是必须有的
※类如果有属性,则每一个属性都必须有一个名字,另外还可以有其它的描述信息,如可见性、数据类型、缺省值等
※类如果有操作,则每一个操作也都有一个名字,其它可选的信息包括可见性、参数的名字、参数类型、参数缺省值和操作的返回值的类型等
![](http://images0.cnblogs.com/blog/432805/201308/14170442-492a4d9a2c91471a957afdbee745ee20.jpg)
类图中的事物及解释
接口
※一组操作的集合,只有操作的声明而没有实现
抽象类
※不能被实例化的类,一般至少包含一个抽象操作
模版类
※一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类
![](http://images0.cnblogs.com/blog/432805/201308/14172247-6129a259302b4149b63631bed12d2657.jpg)
类图中的关系及解释
关联关系
※描述了类的结构之间的关系。具有方向、名字、角色和多重性等信息。一般的关 联关系语义较弱。也有两种语义较强,分别是聚合与组合
![](http://images0.cnblogs.com/blog/432805/201308/14172733-8ad327e0a0114c4cb9d6271cb98a125f.jpg)
泛化关系
※在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间
![](http://images0.cnblogs.com/blog/432805/201308/14173531-d4f7a34e309146ce8858890ec85d21b2.jpg)
实现关系
※对应于类和接口之间的关系
![](http://images0.cnblogs.com/blog/432805/201308/14173546-0d165166f1a74d7db52171e486cc30d1.jpg)
依赖关系
![](http://images0.cnblogs.com/blog/432805/201308/14173741-0f23ddbb86c14d2fa7d779ce310a3462.jpg)
![](http://images0.cnblogs.com/blog/432805/201308/14173949-0bf2981b039140be98f4cd92c25a12b2.jpg)
![](http://images0.cnblogs.com/blog/432805/201308/14174001-4a23b8a771654d89abe59b617321799f.jpg)
类图例子
图形编辑器
※图形编辑器一般都具有一些基本图形,如直线、矩形等,用户可以直接使用基本图形画图,也可以把基本图形组合在一起创建复杂图形
※如果区别对待基本图形和组合图形,会使代码变得复杂,而且多数情况下用户认为二者是一样的
※组合模式可以用相同的方式处理两种图形
![](http://images0.cnblogs.com/blog/432805/201308/14174144-cd14d30578d8498ea02fcd8b1a1586ca.jpg)
![](http://images0.cnblogs.com/blog/432805/201308/14174404-6695fda933dd4b9d9da2ba2b71cdba65.jpg)