UML类图
前言
这几天回顾了《大话设计模式》,发现看类图的时候分不清了,为了加强记忆,也方便回顾,自己手动画了一次类图,并参考了网上文章将此作为笔记,记录下来。
类图
共三层:
1、类名,如果是抽象类为类名为斜体。
2、特性,字段和属性
3、操作,方法,+是公共(Publish)、-是私有(Private)、#是保护(Protected)
关系
关系有六种:
继承(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
继承(Generalization)
描述:类与类的继承关系,子类带有父类的特性和操作
图形表示:空心三角形+实线,由子类指向父类
代码表现:继承
public class 鸟 : 动物 { public virtual object 羽毛 { get; set; } public virtual void 下蛋() { } }
实现(Realization)
描述:类与接口的继承关系,类对接口的操作的实现
图形表示:空心三角形+虚线,由类指向接口
代码表现:继承
public class 大雁 : 飞翔 { public virtual void 下蛋() { } public virtual void 飞() { } }
关联(Association)
描述:拥有的关系,类A知道类B的属性和方法
图形表示:箭头+实线,指向被关联的类
代码表现:成员变量
public class 企鹅 { public virtual 气候 气候 { get; set; } public virtual void 下蛋() { } }
聚合(Aggregation)
描述:弱的拥有关系,整体和部分的关系,体现的是A对象,但B对象不是A对象的一部分,也就是B对象能脱离对象A而单独存在
图形表示:空心菱形+实线+箭头,箭头指向部分
代码表现:成员变量(数组)
public class 雁群 { public virtual IEnumerable<大雁> 大雁 { get; set; } public virtual void 一行飞行() { } public virtual void V行飞行() { } }
组合(Composition)
描述:强的拥有关系,体现了严格的部分和整体的关系,主要体现在部分和整体的生命周期一样。B对象是A对象的一部分,A对象不存在,B对象也不存在
图形表示:实心菱形+实线+箭头,箭头指向部分
代码表现:成员变量(构造函数里new)
public class 鸟 : 动物 { private IEnumerable<翅膀> 翅膀; public 鸟() { 翅膀 = new IEnumerable<翅膀>(); } public virtual object 羽毛 { get; set; } public virtual void 下蛋() { } }
依赖(Dependency)
描述:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖,不然会造成死循环
图形表示:虚线+箭头,箭头指向被使用者
代码表现:局部变量、方法参数或者对静态方法的调用
public abstract class 动物 { public virtual object 生命 { get; set; } public virtual void 新陈代谢(水 水,氧气 氧气) { } public virtual void 繁殖() { } }
附录
各种关系的强弱顺序:
继承 = 实现 > 组合 > 聚合 > 关联 > 依赖
作 者:
陈珙
出 处:http://www.cnblogs.com/skychen1218/
关于作者:专注于微软平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!