UML中泛化 依赖 关联 聚合 组合 实现
泛化(继承)
class A{
}
class B : A{
}
依赖:
class A{
public void Function(B b)
{}
}
class B {
}
关联
class A{
B b = new B();
}
class B {
}
聚合
class A{
public b;
public c;
public A( B in_b){
b = in_b;
}
public A( C in_c){
c = in_c;
}
}
class B {
}
class C {
}
组合
class A{
public b;
public c;
public A( ){
b = new B();
C = new C();
}
}
class B {
}
class C {
}
聚合和组合的区别:生命周期。
组合中,随着A类的生命周期结束,B,C也结束。必须在A类里面使用。
聚合中,随着A类的生命周期结束,B,C不一定结束。
聚合关系的类里含有另一个类作为参数
A类的构造函数中要用到B类,C类作为参数把值传进来 B类,C类可以脱离A类而独立存在
组合关系的类里含有另一个类的实例化
A类在实例化之前 一定要先实例化B类,C类。 三个类紧密耦合在一起 它们有相同的生命周期 B类,C类不可以脱离A类而独立存在
信息的封装性不同
在聚合关系中,客户端可以同时了解A类和B类,C类,因为他们都是独立的
而在组合关系中,客户端只认识A类,根本就不知道B类,C类的存在,因为B类,C类被严密的封装在A类中。
posted on 2009-01-12 15:11 yigehaoren 阅读(520) 评论(0) 收藏 举报
浙公网安备 33010602011771号