0. UML类图与代码关联关系
UML类图图示:
UML类图代码实现
/**
* @author 043
* @version 1.0
* @since 2019/07/08 10:14
*/
public class DesignPicTest {
/**
* 继承关系:子类 (实线 三角 指向) ————▷父类
* @see Duck,ILanguage1 (类&接口的继承)
* Duck类 继承了 Brid 类
* ILanguage1接口 继承了 ILanguage 接口
*
* 实现关系:类 (虚线 三角 指向)----▷ 接口
* @see WideGoose大雁#method_飞行()
* WideGoose大雁类 实现了 IFly 接口
*
* 依赖关系:动物类 (虚线 箭头)---->氧气,水A
* @see Animal#method_新陈代谢(Oxygen氧气, Water水)
* Animal类 中的 新陈代谢 方法参数用到了 Oxygen氧气, Water水 两个类
* <i>依赖关系在Java中的具体代码表现形式为B为A的构造器或方法中的局部变量、方法或构造器的参数、方法的返回值,或者A调用B的静态方法(关键在于依赖是该类用了其他类的对象,不是成员变量,可能是在方法中引用了其他类的对象)</i>
*
* 关联关系:企鹅 (实线 箭头)————> 气候
* @see Penguin企鹅类#field_Climate气候类
* Penguin企鹅类 内拥有 climate气候类 属性
* 它是一个类知道另一个类的属性和方法。关联可以是双向的,也可以是单向的。在Java语言中,关联关系一般使用成员变量来实现。
*
* 聚合关系: 雁群类 (空心菱形 实线 箭头) ◇————>大雁类
* @see WideGooseAggregate雁群#fileld_arrayWideGoose
* WideGooseAggregate雁群类 内拥有大雁集合 arrayWideGoose 属性
* 是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分。
*4
* 合成(组合)关系:鸟 (实心菱形 实线 箭头)◆————> 翅膀
* @see Brid#field_Wing翅膀
* Brid类 内有 wing翅膀 属性, 且该属性在构造方法内需定义,属类必须属性
* 是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。
*/
}
interface ILanguage {
void speak();
}
interface ILanguage1 extends ILanguage {
void speak1();
}
interface IFly {
void method_飞行();
}
class Climate气候类 {
}
class Oxygen氧气 {
}
class Water水 {
}
class Penguin企鹅类 extends Brid {
/**
* 关联关系
*/
private Climate气候类 field_Climate气候类;
}
class Animal {
public void method_新陈代谢(Oxygen氧气 oxygen氧气, Water水 water水) {
}
}
class Wing翅膀 {
}
class Brid extends Animal {
/** 羽毛 */
public String feature;
/** 有角质没有牙齿 */
public String hasANohasB;
/**
* 合成(组合)关系
*/
private Wing翅膀 field_Wing翅膀;
/**
* 合成(组合)关系
*/
public Brid() {
field_Wing翅膀 = new Wing翅膀();
}
public void egg() {
System.out.println("Brid.egg()");
}
}
class WideGoose大雁 implements IFly {
@Override
public void method_飞行() {
System.out.println("WideGoose大雁.fly()");
}
}
class WideGooseAggregate雁群 {
/**
* 聚合关系
*/
private WideGoose大雁[] fileld_arrayWideGoose;
}
class Duck extends Brid {
@Override
public void egg() {
System.out.println("Duck.egg()");
}
}
以上