前言
大话设计中,多次使用UML类图来表示,并也给了基本的介绍,这里从书中选出UML图和代码做成笔记,以方便查找。
1、类
注意前面的符号:
+
:public
-
:private
#
:protected
抽象类,第一行的名称要用斜体
abstract class 动物{
public 类型 有生命;
...// 后面依赖关系会提到
}
2、接口
接口的UML有两个表示形式,矩阵表示法和棒棒糖表示法。
interface I飞翔{
void 飞();
}
棒棒糖表示法中,接口名称是讲人话,接口方法是讲话。
interface I讲人话{
void 讲话();
}
3、继承
class 鸟 extends 动物{
public 数据类型 羽毛;
public void 下蛋(){
...
};
}
4、实现
class 大雁 implements I飞翔{
public void 下蛋(){
...
};
public void 飞(){
// 接口的方法,这里具体实现
};
}
5、关联关系
企鹅需要‘知道’气候变化,需要‘了解’气候规律。
当一个类‘知道’另一个类时,可以用关联(association)
class 企鹅 extends 鸟{
// 在 企鹅 中,引用了气候climate对象
private 气候 climate;
}
6、聚合关系
聚合关系:A可以包含B,但B不是A的一部分。
class 雁群{
// 雁群可以有多个大雁在里面
private 大雁[] 声明的对象;
}
- 解释:
雁群是一个大的群体,可以看作定义中的A;大雁是单独的个体,可以看作定义的B,这个个体可以有好多(B1到Bn个)。如下图,B4可以在A中,也可以不在A中,这就是聚合。
7、组合关系
组合关系:整体与部分,包含。
连接线上有数字‘1’和‘2’,这个表示一端的类可以有几个实例
下图例子是1个鸟有2个翅膀
class 鸟{
// 鸟中声明翅膀对象wing
private 翅膀 wing;
public 鸟(){
// 初始化时,实例化翅膀wing,他们之间同时生成
wing = new 翅膀();
}
}
PS:无参构造里面的内容为组合;
白话:主体一旦被创建,部分也要同时被创建,所以在构造方法中。
8、依赖关系
abstract class 动物{
public 类型 有生命;
//
public 新陈代谢(氧气 oxygen,水 water){
}
}
PS:被依赖的类(氧气,水),做为主类的返回对象或着形参数
白话:被依赖的类,在主类的方法中被要用到。