一,类建模
1,多重性
2,关联端名
3,自关联
类与自身关联,关联两端不同角色
public class Person{
public Person[] parent;
public Person[] child;
}
4,关联类
关联关系之间衍生出的类。多对多必须使用。
5,限定关联
加一个限定符降低多重性。bank+accountnumber ----- account
6,泛化(is-a-kind-of)和继承
任何父类都可以被子类直接替换(正方形与矩形)
二,类建模高级
1,枚举
不要用泛化。
<>
enum suit{
A,B,C}
2,属性多重性
属性的实例可能取值个数。
3,可见性
±#~
4,N元关联
无法被表示,把关联提升为类。
5,聚合
一个聚集对象由多个部件构成,具有传递性。A<-B,B<-C,A<-C
整体与部分的生命周期可以不一样。
6,组合
生命周期相同,是特殊的聚合。
Circle -> Point
7,关联,聚合,组合在于发的实现上区别不大
8,抽象类
9,多重继承
产生二义性。不知道用哪一个方法。
使用部件组合的委派。即用一个独立的抽象部件去代替原来泛化子类的功能。由于抽象方法所以用哪个方法都一样。
具体:把冲突的功能分成组件