haorenyuan

导航

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)    收藏  举报