Calvin's Tech Space

成于坚忍,毁于浮躁

   :: 首页 :: 联系 :: 聚合  :: 管理
 

UML,泛化,,,聚合

 

的关系于理解面向象具有很重要的作用,以前在面候也常被问题,在里我就介一下。

存在以下关系:

(1)泛化(Generalization)

(2)(Association)

(3)(Dependency)

(4)聚合(Aggregation)

UML用代例子:

1.泛化(Generalization)

[泛化]

表示承关系,接口与接口之承关系,或类对接口的实现关系。一般化的关系是从子指向父的,与承或实现的方法相反。

[具体表]

类实例=new ()

[UML](1.1)

1.1 AnimalTiger,Dog的泛化关系

[]

class Animal{}   

class Tiger extends Animal{}   

public class Test   

{   

    public void test()   

     {   

         Animal a=new Tiger();   

     }   

}  

2.(Dependency)

[]

于两个相独立的象,当一个负责构造另一个象的例,或者依另一个象的服务时两个象之主要体现为关系。

[具体表]

关系表在局部量,方法的参数,以及方法的

[现实例子]

比如你要去,你是不是要借助(也就是依)(Screwdriver)来帮助你完成(screw)的工作

[UML](1.2)

1.2 PersonScrewdriver的依关系

[]

public class Person{   

    /** */  

    public void screw(Screwdriver screwdriver){   

         screwdriver.screw();   

     }   

}  

3.(Association)

[]

于两个相独立的象,当一个象的例与另一个象的一些特定例存在固定的对应关系两个象之间为关系。

[具体表]

关系是使用量来实现

[现实例子]

比如客订单,每个订单对应特定的客,每个客户对应一些特定的订单;再例如公司和工,每个公司对应一些特定的工,每个对应一特定的公司

[UML] (1.3)

1.3 公司和工的关关系

[]

public class Company{   

    private Employee employee;   

    public Employee getEmployee(){   

        return employee;   

     }   

    public void setEmployee(Employee employee){   

        this.employee=employee;   

     }   

    //公司运作   

    public void run(){   

         employee.startWorking();   

     }   

}  

(4)聚合(Aggregation

[聚合]

A被加入到B中,成为对B成部分BA间为聚集关系。聚合是关关系的一种,是较强的关关系,强调的是整体与部分之的关系。

[具体表]

与关关系一,聚合关系也是通过实量来实现这样关系的。关关系和聚合关系来法上是没法区分的,从语义上才能更好的区分两者的区

[与聚合的区]

(1)关系所涉及的两个象是在同一个次上的。比如人和自行就是一种关关系,而不是聚合关系,因人不是由自行车组成的。

聚合关系涉及的两个于不平等的次上,一个代表整体,一个代表部分。比如电脑和它的示器、键盘、主板以及内存就是聚集关系,因主板是电脑成部分。

(2)于具有聚集关系(尤其是聚集关系)的两个象,整体象会制它的象的生命周期。部分象不能独存在,它的生命周期依于整体象的生命周期,当整体消失,部分也就随之消失。比如三的电脑了,那么电脑的所有件也不存在了,除非三事先把一些电脑件(比如硬和内存)拆了下来。

[UML](1.4)

1.3 电脑件的聚合关系

[]

public class Computer{   

    private CPU cpu;   

    public CPU getCPU(){   

        return cpu;   

     }   

    public void setCPU(CPU cpu){   

        this.cpu=cpu;   

     }   

    //开启电脑   

    public void start(){   

        //cpu运作   

         cpu.run();   

     }   

}  

////////////////////////////////////////////

我想(Dependency)和关(Association)做一下充。不正之指出。

[]

于两个相独立的象,当一个负责构造另一个象的例,或者依另一个象的服务时两个象之主要体现为关系。

[具体表]

关系表在局部量,方法的参数,以及法的 //除了三种外我想还应该包括一些量来实现,就像关关系和聚合关系从法上很区分一。依和关在某些方面也很法上去区分。

[现实例子]

比如你要去,你是不是要借助(也就是依)(Screwdriver)来帮助你完成(screw)的工作

[]

java

public class Person {  

    private ScrewService screwService;  

    public ScrewService getScrewService() {  

        return screwService;  

     }  

    public void setScrewService(ScrewService screwService) {  

        this.screwService = screwService;  

     }  

    public void screw(){  

         screwService.screw();  

     }  

我不知道假如是以上代情况seagar 想把它们归入那种关。以我的想法就是它仍然属于依关系,因为现在我就是用spring来把ScrewServiceImpl注入 screwService的。而且它也符合当一个负责构造另一个象的例,或者依另一个象的服个定。所以我想以上情况把它归为关系会比合适一点。

posted on 2009-08-12 16:56 calvin 阅读(413) 评论(0)  编辑  收藏 所属分类: UML

只有注册用户登录后才能发表评论。


网站导航: