- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
A.0、Class Diagram(类图)
类图是类和它们之间的关系描述系统的一种图,是从静态角度表示系统,是静态模型。类图是其它图
A.1、类图的模型元素
Package(包)、Class(类)、Interface(接口)
B、类之间的关系
B.1、Associate、Association(关联)
用于描述类与类之间的连接。有”user a”的含义。
关联关系表明两个模型元素之间有关系,通常作为一个类的实例变量来实现。这个连接在每一端都包含一个已命名的角色(这个角色具有多样性、方向性和约束性)。
当代码是由类图生成的,关联关系会在目的类中变成一个实例变量。
关联关系还可在Package, Object, Communication, Data Modeling, Deployment图中使用。
B.2、Association Class(关联类)
关联类连接是一个UML概念,它使一个关系连接有属性和操作(特征)。这样的结果是一个连接有一个类的混合关系。
B.3、Aggregate、Aggregation(聚合)
是关联的特例。是指类与类之间有“整体和部分”的特点。部分脱离整体,部分仍有意义。有”has a”的含义。是共享式的。
B.4、Compose、Composition(组合)
也是指类与类之间有“整体和部分”的特点。而Composition中的部分脱离了整体,部分将没有任何意义,是独占式的。
B.5、Generalize、Generalization(概括)
在类图中概括就是继承。
B.6、Realize、Realization(实现)
实现是指一个模型元素(类)是另一个模型元素(接口)的实现。
B.7、Dependency(依赖)
依赖表示两个或多个模型元素之间语义上的关系。
下面两种情况属于依赖关系:
B作为一个参数被传递给A中所定义的一个方法(参数可见性);
B在A的一个方法中被声明为局部对象(局部声明可见性);
而关联一般应描述为普通的属性(B是A的一个属性,是一种相对长久的可见性)
B.8、Permission Dependency(授权依赖)
授权依赖表示一个事物访问另一个事物的能力。提供者通过规定客户的权限,可以控制和限制对其内容访问的方法。
B.9、Usage Dependency(使用依赖)
使用依赖都是非常直接的,通常表示客户使用提供者提供的服务以实现它的行为。
C、详细说明
C.1、Association、Aggregation、Composition三种关系比较
从代码实现的角度上讲:三者都是以属性出现,其中Association中作为属性出现时,不需要对其进行强制赋值,只要在使用是对其进行初始化即可。Aggregation中作为属性出现时,需要在构造器中通过传递参数来对其进行初始化。Composition中作为属性出现时,需要在整体的构造器中创建部分的具体实例,完成对其的实例化。
从数据库的层面上来讲:Association不需要被级联删除,Aggregation不需要被级联删除,Composition是需要被级联删除的。
C.2、举例说明Aggregation和Composition的区别
举例说明从代码实现的角度上讲Aggregation和Composition的区别。
//Aggregation relationship
public class Computer{
private String cpu;
private Monitor aMonitor;
public Computer(String cpu, float weight, Monitor aMonitor){
this.cpu=cpu;
this.aMonitor=aMonitor;
}
}
class Monitor{
private int inch;
private boolean isFlat;
//no information of computer 单向关系
public Monitor(int inch, boolean isFlat){
this.inch=inch;
this.isFlat=isFlat;
}
}
//Composition relationship
public class Computer{
private String cpu;
private Monitor aMonitor;
public Computer(String cpu, float weight, int inch, boolean isFlat){
this.cpu=cpu;
this.weight=weight;
this.aMon
您可能关注的文档
最近下载
- 一种电子级硝酸的制备方法.pdf VIP
- 招标文件评分要点深度分析.docx VIP
- 电力行业集团数字化转型信息化战略规划方案.docx
- 作风建设学习教育单位自查清单(28个问题方面)+领导干部作风建设学习教育查摆问题清单(五个方面共15条).docx VIP
- 2024江苏省数据集团有限公司招聘试题及答案解析.docx
- FlyWan双口USB打印服务器安装方法.doc VIP
- 2023年03月六级真题全3套.pdf VIP
- 2024年初三中考第一次模拟考试试题:地理(安徽卷)(考试版A3).docx VIP
- 天津市部分区2022-2023学年三年级下学期语文期末试卷.pdf VIP
- 高铁客运服务案例分析报告.docx VIP
文档评论(0)