UML类关系之JAVA代码实现

UML类关系之JAVA代码实现

ID:37907906

大小:35.00 KB

页数:4页

时间:2019-06-02

UML类关系之JAVA代码实现_第1页
UML类关系之JAVA代码实现_第2页
UML类关系之JAVA代码实现_第3页
UML类关系之JAVA代码实现_第4页
资源描述:

《UML类关系之JAVA代码实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UML中类之间的关系及其Java代码例子ClassBClassEClassDClassCClassA[摘自Java开发者frenzied]关系是事物之间的联系。类之间有4种重要的关系:依赖、泛化、关联和实现。这些关系都可以映射到代码里。依赖()是一种使用关系,描述了一个事物的规格说明的变化可能会影响到使用它的另一个事物(反之不一定)。在UML中表示为一条指向被依赖事物的虚线。依赖有很多构造型,不过一般不需要使用,以免搞得过份复杂。其实另外3种关系泛化、关联和实现都可以算作是某种依赖关系,只不过它们有比较强的语义和重要的作用,所以划分出来。一般对类关系建模的时候,先对泛

2、化、关联和实现建模,剩下的关系都可以看作依赖了。对应到代码中,依赖关系可能有很多种形式,例如publicclassA{  publicBgetB(Cc,Dd)  {    Ee=newE();    Bb=newB(c,d,e);  }}这里类A就依赖于类B(方法返回类)、C和D(参数类)、E(方法内变量的类),因为这几个类的变化都有可能影响到类A泛化(Generalization)是一般事物(称为超类或父类)和较特殊的事务(称为子类)之间的关系,对类来说一般就是继承了,如:publicClassAextendsB。一般用一个带空心箭头的实线表示泛化关系。关联是一种结

3、构关系,说明一个事物的对象与另一个事物的对象相联系。给定一个连接两各类的关联,可以从一个类的对象导航到另一个类的对象。一般把关联画为连接相同或者不同的类一条实线。关联可以有方向,即导航。一般不作说明的时候,导航是双向的,不需要在线上标出箭头。大部分情况下导航是单向的,可以加一个箭头表示。关联在代码中一般表示为属性,例如publicclassA{privateBb;}可以认为有一个A指向B的关联。如果B也关联到A,那么它们就是双向的关联。有的时候B不是A的属性,但是也可以有关联关系,例如:publicclassA{publicB[]getBs(){...}}方法getB

4、s可能去查数据库,找到A和B之间的关联关系。两个类之间的简单关联表示了两个同等地位类之间的结构关系。聚合也是一种关联关系,与简单关联不同的是,它描述的是一个整体和组成部分的关系,即“has-a”关系,意思是整体对象拥有部分对象,例如学校和学生的关系。聚合的整体和部分之间在生命周期上没有什么必然的联系,部分对象可以在整体对象创建之前创建,也可以在整体对象销毁之后销毁。聚合用带一个空心菱形(整体的一端)的实线表示。publicClassPerson{...}publicClassSchool{privateArrayListstudents;privatevoidaddS

5、tudent(Personperson){students.add(person);}}组合则是比聚合更强的关联形式。组合是指带有很强的拥有有关系且整体与部分的生命周期一致的聚合关联形式。例如Windows的窗口和窗口上的菜单就是组合关系。生命周期一致指的是部分必须在组合创建的同时或者之后创建,在组合销毁之前或者同时销毁,部分的生命周期不会超出组合的生命周期。组合是用带实心菱形(整体的一端)的实线来表示。publicClassMenu{...}publicClassWindow{privateMenumenu;}组合和聚合在代码实现上的主要差别在于生命周期的实现上,组

6、成需要负责其部分的创建和销毁。publicClassSchool{publicSchool(){...}//不需要创建任何Person对象,其Students都是已有的Person对象publicvoiddestroy(){...}//只需要关掉School对象和断开它与自己所有的Person对象的关联即可,Person对象是不会销毁的}publicClassWindow{privateMenumenu;publicWindow(){menu=newMenu();}//可以在这时候创建Menu对象,也可以在之后创建publicvoiddestory(){menu.de

7、story();}//必须同时或者在这之前销毁关联的Menu对象}另外有一个差别是组合中的一个对象在同一时刻只能属于一个组成对象,而聚合的一个部分对象可以被多个整体对象聚合,例如一个学生可以在多个学校就读,而一个菜单在同一时刻只能是某个窗口内的对象。实现(Realize)关系就比较简单了,指的是一个类元描述了另一个类元保证实现的契约。对类来说,就是一个类实现了一个接口publicinterfaceA{publicvoidmethodA();}publicclassBimplementsA{publicvoidmethodA(){...}...}一般在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。