UML类图相关实践
最近看了下设计模式,其中无可避免会设计很多类图,UML类图对于学习设计模式很重要,关于设计模式,我也会在这里写上一写,这一篇关于UML类图的就先当个铺垫。
1.先上一个简单的类图来简单说明下:

1).其中MyClass代表的是类名。
2).name,gender和age分别代表成员变量,其中+代表public,#代表product,-代表private,冒号后面的String标示的都是成员变量的类型。
3).getAge和setAge代表的是方法,前面的+跟成员变量标示的意义一样标示public,其中setAge中的String标示接收一个String类型的参数,冒号后面的代表的是返回值。
2.类与类之间的关系
类与类之间的关系分为,关联关系,聚合关系,组合关系,依赖关系和泛化关系,下面分别说下
1).关联关系:两个相对独立的对象,当一个对象的实例与另外一个对象的特定实例存在固定关系时,这两个对象之间就存在关联关系。关联关系又分为单向关联,双向关联,自身关联和多维关联。
单关联,写IO相关类时候都写过类似于这样的代码 new BufferInputStream(new FileInputStream("d:\\my.txt"));
其中BufferInputStream类持有一个FileInputStream的引用,通过构造方法传入的,这样就是一个单关联

双关联,举个简单的例子,我们都当过学生,我们都有很多老师,同样一个老师也有很多学生,类图如下

代码如下:
public class Teacher {
private final static List<Student> students = new ArrayList<Student>();
public void putStudent(Student student) {
students.add(student);
}
}
public class Student {
private final static List<Teacher> teachers= new ArrayList<Teacher>();
public void putTeacher(Teacher teacher){
teachers.add(teacher);
}
}
自关联,说实话没想起什么好的例子,可以拿单例看下

多维关联,例如一个页面可以有多个文本框,但一个文本框只能在一个页面下

2).聚合关系:聚合关联是一种特殊的关联. 它表示类间的关系是整体与部分的关系. 简言之: 关联关系中的一个类描述了一个较大的事物, 它由较小的事物组成.
比如一个软件工程专业有很多课程组成,其中Java这个课程从这个专业拿掉,这个专业还是软件工程,而Java还是可以单独存在的。

3).组合关系:整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。
说个人的例子吧,人由很多部分组成,其中一部分是骨骼,如果人没了,那其实骨骼也就没生命力了,骨骼不可能脱离人这个整体而单独存在。

4).依赖关系:表示一个事物的使用需要另外一个事物的行为,就像老司机开车,除了老司机类的开车方法里需要调用车的移动方法。

5).泛化关系:这就是一种继承关系,它代表父类和子类之间的关系。

其实还有一种就是接口的实现关系

好了这个UML类图就简单到这,画的不好,而且风格不统一(家里的版本和公司的不一样啊!),这个类图看的清楚对设计模式的学习很重要!就酱!
参考:
http://blog.csdn.net/column/details/umlmodelingtechnolog.html
UML类图相关实践的更多相关文章
- 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
- 1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
1.使用简单工厂模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
- UML类图概述、设计模式
深入浅出UML类图(http://blog.csdn.net/lovelion/article/details/7843308) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相 ...
- OO第四单元总结——查询UML类图 暨 OO课程总结
一.本单元两次作业的架构设计总结 作业一.UML类图查询 1. 统计信息图 2. 复杂度分析 基本复杂度(Essential Complexity (ev(G)).模块设计复杂度(Module Des ...
- 设计模式学习笔记(详细) - 七大原则、UML类图、23种设计模式
目录 设计模式七大原则 UML类图 设计模式分类 单例模式 工厂设计模式 简单工厂模式 工厂方法模式(使用抽象类,多个is-a) 抽象工厂模式(使用接口,多个like-a) 原型模式 建造者模式 适配 ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
- UML——在Visual Studio 2013/2015中设计UML类图
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...
- 转:深入浅出UML类图(具体到代码层次)
深入浅出UML类图 作者:刘伟 ,发布于:2012-11-23,来源:CSDN 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一.Martin Fowler在其著作<UML ...
- [转载]UML类图总结
前言 类图和序列图是UML中最常用的两种Diagram.我将做详细的总结.在许多书中,或者网站中,在介绍一个系统的子系统的设计时,很多时候,都是给出简单的类图来简述构成子系统的类之间的关系.这足以说明 ...
随机推荐
- saiku 展示优化
saiku版本:3.7.4 下面是修改步骤,如果觉得麻烦,可以直接下载源代码:https://github.com/lihehuo/saiku 1.关闭自动执行 修改文件:saiku-ui/js/sa ...
- 公钥、私钥、CA认证、数字签名、U盾
感谢传智播客的方立勋老师,在一个教学视频上,他巧妙地以蒋介石给宋美龄写密信作为例子,生动地讲述了软件密码学知识. 加密分为对称加密和非对称加密,我们传统理解的,发送数据之前使用一个加密器加密,接到数据 ...
- 明天去FDUSC报道了,GOD BLESS ALL OF US
@lrb @tellmewtf @proverbs
- DDD:整理了一些关于验证方面的文章
http://msdn.microsoft.com/en-us/library/ff664356(v=pandp.50).aspx http://gorodinski.com/blog/2012/05 ...
- Hadoop入门进阶课程4--HDFS原理及操作
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan ...
- Flatic – 超齐全的 Web 元素界面素材库免费下载
Flatic 是一个庞大的用户界面工具包,包含数以百计的网页元素,这将有助于你在 Photoshop 中轻松设计整个网站.成套的图标和动作都已包含在套件中.该素材包包括超过100个 PSD 元素.您可 ...
- Swift_3.0_开启注释功能
1. Swift_3.0 没法快捷键(command+/)注释的原因:这个是因为苹果解决xcode ghost,把插件屏蔽了. 2. 解决办法: (1) 终端输入: sudo /usr/libexec ...
- [C] static和extern的作用
static: 当用于函数定义或者代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal. 当用于代码块内部的变量声明时,static关键字用于修改 ...
- HTML5 LocalStorage 本地存储的用法
本地存储变量b的值: localStorage.setItem("b","isaac"); 本地获取变量b的值: localStorage.getItem(&q ...
- 自增长的聚集键值不会扩展(scale)
如何选择聚集键值的最佳实践是什么?一个好的聚集键值应该有下列属性: 范围小的(Narrow) 静态的(Static) 自增长的(Ever Increasing) 我们来具体看下所有这3个属性,还有在S ...