??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕一区二区三区久久网站,久久成人这里只有精品,亚洲色图第一页http://www.aygfsteel.com/lihao336/category/41270.htmlzh-cnThu, 13 Aug 2009 13:29:19 GMTThu, 13 Aug 2009 13:29:19 GMT60UML,泛化,依赖,兌,聚合http://www.aygfsteel.com/lihao336/articles/290859.htmlPhoenixLHPhoenixLHWed, 12 Aug 2009 08:56:00 GMThttp://www.aygfsteel.com/lihao336/articles/290859.htmlhttp://www.aygfsteel.com/lihao336/comments/290859.htmlhttp://www.aygfsteel.com/lihao336/articles/290859.html#Feedback0http://www.aygfsteel.com/lihao336/comments/commentRss/290859.htmlhttp://www.aygfsteel.com/lihao336/services/trackbacks/290859.htmlUML,泛化,?/span>?/span>,?/span>?/span>,聚合

 

c?/span>?/span>c?/span>?/span>?/span>的关p?/span>?/span>于理解面?/span>?/span>象具有很重要的作用,以前在面?/span>?/span>?/span>候也l?/span>常被?/span>?/span>q?/span>?/span>问题Q在q?/span>里我׃l?/span>一下?/span>

c?/span>?/span>c?/span>?/span>?/span>存在以下关系:

(1)泛化(Generalization)

(2)?/span>?/span>(Association)

(3)?/span>?/span>(Dependency)

(4)聚合(Aggregation)

UML?/span>?/span>?/span>用代?/span>例子:

1.泛化(Generalization)

[泛化]

表示c?/span>?/span>c?/span>?/span>?/span>?/span>l?/span>承关p,接口与接口之?/span>?/span>l?/span>承关p,?/span>cd接口?/span>实现关系?/span>一般化的关pL从子c?/span>指向?/span>c?/span>的,?/span>l?/span>承或实现的方法相反?/span>

[具体?/span>?/span>]

?/span>c?/span>?/span>cd例=new ?/span>c?/span>()

[UML?/span>](?/span>1.1)

?/span>1.1 Animalc?/span>?/span>Tigerc?/span>,Dogc?/span>的泛化关p?/span>

[?/span>?/span>?/span>?/span>]

class Animal{}   

class Tiger extends Animal{}   

public class Test   

{   

    public void test()   

     {   

         Animal a=new Tiger();   

     }   

}  

2.?/span>?/span>(Dependency)

[?/span>?/span>]

?/span>于两个相?/span>独立?/span>?/span>象,当一?/span>?/span>?/span>负责构造另一?/span>?/span>象的?/span>例,或者依?/span>另一?/span>?/span>象的?/span>务时Q?/span>q?/span>两个?/span>象之?/span>主要?/span>?/span>?/span>关系?/span>

[具体?/span>?/span>]

?/span>?/span>关系?/span>?/span>在局?/span>?/span>量,Ҏ的参敎ͼ以及?/span>?/span>?/span>Ҏ?/span>?/span>?/span>

[现实例子]

比如?/span>你要?/span>?/span>?/span>?/span>Q你是不是要借助(也就是依?/span>)?/span>?/span>(Screwdriver)来帮助你完成?/span>?/span>?/span>(screw)的工?/span>

[UML?/span>?/span>](?/span>1.2)

?/span>1.2 Personc?/span>?/span>Screwdriverc?/span>的依?/span>关系

[?/span>?/span>?/span>?/span>]

public class Person{   

    /** ?/span>?/span>?/span> */  

    public void screw(Screwdriver screwdriver){   

         screwdriver.screw();   

     }   

}  

3.?/span>?/span>(Association)

[?/span>?/span>]

?/span>于两个相?/span>独立?/span>?/span>象,当一?/span>?/span>象的?/span>例与另一?/span>?/span>象的一些特?/span>?/span>例存在固定的对应关系?/span>Q?/span>q?/span>两个?/span>象之间ؓ?/span>?/span>关系?/span>

[具体?/span>?/span>]

?/span>?/span>关系是?/span>?/span>?/span>?/span>量来实现

[现实例子]

比如?/span>?/span>?/span>订单Q每?/span>订单对应特定的客?/span>Q每个客户对?/span>一些特定的订单Q再例如公司?/span>?/span>工,每个公司对应一些特定的?/span>工,每个?/span>?/span>对应一特定的公?/span>

[UML?/span>] (?/span>1.3)

?/span>1.3 公司?/span>?/span>工的?/span>?/span>关系

[?/span>?/span>?/span>?/span>]

public class Company{   

    private Employee employee;   

    public Employee getEmployee(){   

        return employee;   

     }   

    public void setEmployee(Employee employee){   

        this.employee=employee;   

     }   

    //公司q作   

    public void run(){   

         employee.startWorking();   

     }   

}  

(4)聚合Q?/span>AggregationQ?/span>

[聚合]

?/span>?/span>?/span>A被加入到?/span>?/span>B中,?/span>为对?/span>B?/span>l?/span>成部?/span>?/span>Q?/span>?/span>?/span>B?/span>?/span>?/span>A?/span>间ؓ聚集关系?/span>聚合是关?/span>关系的一U,?/span>较强的关?/span>关系Q?/span>的是整体与部分之?/span>的关pR?/span>

[具体?/span>?/span>]

与关?/span>关系一?/span>Q聚合关pM是?/span>q实?/span>?/span>量来实现q样关系的。关?/span>关系和聚合关pL?/span>法上是没?/span>法区分的Q从语义上才能更好的区分两者的?/span>?/span>?/span>

[?/span>?/span>与聚合的?/span>?/span>]

(1)?/span>?/span>关系所涉及的两?/span>?/span>象是?/span>在同一?/span>?/span>ơ上的。比如h和自?/span>?/span>是一U关?/span>关系Q而不是聚合关p,?/span>?/span>Z是由自行车组成的?/span>

聚合关系涉及的两?/span>?/span>?/span>?/span>于不q等?/span>?/span>ơ上Q一个代表整体,一个代表部分。比?/span>电脑和它?/span>?/span>C器?/span>键盘、主板以及内存就是聚集关p,?/span>?/span>L?/span>电脑?/span>l?/span>成部分?/span>

(2)?/span>于具有聚集关p(其?/span>?/span>聚集关系Q的两个?/span>象,整体?/span>象会?/span>U?/span>它的l?/span>?/span>?/span>象的生命周期。部?/span>c?/span>?/span>?/span>象不?/span>?/span>独存在,它的生命周期?/span>?/span>于整?/span>c?/span>?/span>?/span>象的生命周期Q当整体消失Q部分也随之消失。比?/span>?/span>三的电脑?/span>?/span>了,那么电脑的所?/span>l?/span>件也不存在了Q除?/span>?/span>三事先把一?/span>电脑?/span>l?/span>Ӟ比如?/span>?/span>和内存)拆了下来?/span>

[UML?/span>](?/span>1.4)

?/span>1.3 电脑?/span>l?/span>件的聚合关系

[?/span>?/span>?/span>?/span>]

public class Computer{   

    private CPU cpu;   

    public CPU getCPU(){   

        return cpu;   

     }   

    public void setCPU(CPU cpu){   

        this.cpu=cpu;   

     }   

    //开?/span>电脑   

    public void start(){   

        //cpuq作   

         cpu.run();   

     }   

}  

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

我想?/span>?/span>?/span>(Dependency)和关?/span>(Association)做一?/span>?/span>充。不正之?/span>?/span>?/span>指出?/span>

[?/span>?/span>]

?/span>于两个相?/span>独立?/span>?/span>象,当一?/span>?/span>?/span>负责构造另一?/span>?/span>象的?/span>例,或者依?/span>另一?/span>?/span>象的?/span>务时Q?/span>q?/span>两个?/span>象之?/span>主要?/span>?/span>?/span>关系?/span>

[具体?/span>?/span>]

?/span>?/span>关系?/span>?/span>在局?/span>?/span>量,Ҏ的参敎ͼ以及?/span>?/span>?/span>?/span>法的?/span>?/span> //除了q?/span>三种外我?/span>q应?/span>包括一?/span>?/span>?/span>?/span>量来实现Q就像关?/span>关系和聚合关pM?/span>法上?/span>?/span>区分一?/span>。依?/span>和关?/span>在某些方面也?/span>?/span>?/span>?/span>法上d分?/span>

[现实例子]

比如?/span>你要?/span>?/span>?/span>?/span>Q你是不是要借助(也就是依?/span>)?/span>?/span>(Screwdriver)来帮助你完成?/span>?/span>?/span>(screw)的工?/span>

[?/span>?/span>?/span>?/span>]

java ?/span>?/span>

public class Person {  

    private ScrewService screwService;  

    public ScrewService getScrewService() {  

        return screwService;  

     }  

    public void setScrewService(ScrewService screwService) {  

        this.screwService = screwService;  

     }  

    public void screw(){  

         screwService.screw();  

     }  

我不知道假如是以上代?/span>情况seagar x?/span>们归入那U关?/span>。以我的x是?/span>?/span>仍然属于?/span>?/span>关系Q因为现在我是?/span>spring来把ScrewServiceImpl注入 screwService的。而且它也W合当一?/span>?/span>?/span>负责构造另一?/span>?/span>象的?/span>例,或者依?/span>另一?/span>?/span>象的?/span>?/span>?/span>q?/span>个定?/span>。所以我想以上情冉|?/span>归ؓ?/span>?/span>关系会比?/span>合适一炏V?/span>



PhoenixLH 2009-08-12 16:56 发表评论
]]>
վ֩ģ壺 | | ֹ| | | ͳ| | | ԫ| | | üɽ| ɼ| | | | | ʻ| ɽʡ| | | | ƽ| ָ| ƺ| ǹ| | ɽ| | | ֱ| | ƽ| Ѯ| | | Ϊ| | ˼| | |