第十一章 面向对象的设计与实现(此章完结)

本文深入讲解面向对象设计中的关联、角色、关联类、多重性、约束、限定符和聚合关系。关联命名原则强调命名应有助于理解,角色描述了类在关联中的行为,关联类用于描述关联的属性。此外,文章还探讨了关联的多重性、约束和限定符的使用,以及聚合关系的优化设计,包括聚集与组合的区别。面向对象设计的优化涉及确定优先级、提供效率的技术和调整继承关系。最后,讨论了面向对象程序设计语言的选择和面向对象程序设计风格,强调了代码重用、可扩充性和健壮性的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(2)关联的命名

关联命名的原则是命名有助于模型的理解,若一个关联意思已经很明确,则不需要关联名。图11.10使用关联名的关联

在关联端可以标出多重性,其表示方法与类属性的多重性描述了方法相同,关联端的多重性标记规定该对象类中由多少对象参与关联常用的多重性标记由“0..1”、“1”、“#”

(3)角色

在关联的对象类图标旁可以标出类的角名(Role)角色,表示被关联的类参与关联的特定的行为,角色可以后跟一个冒号“:”和类名。这个类名常使一个接口式或类型(Type)的名字表示该角色在关联中的行为是通过相关的接口或类型实现的,角色名前可以标有可视性标记“+”、“#”、“-”等,含义与类属性的可视性标记类似,“+”表示公共属性,“#”表示为保护属性。“-”表示属性为私有属性。

关联的两端的类可以某种角色参与关联,例如在图11.11中,角色也具有多重性,表示可以由多少个对象参与该关联。

(4)关联类及其属性

关联本身也可以由属性,通过关联类可以进一步描述关联的属性,操作及其他信息,关联类通过一条虚线和关联连接,如类图11.12

 图11.12中的Contract类是一个关联类,Contract类中由属性daty,这个属性描述的是Company类和Person类之间的关联属性。

由于指定了关联角色的名字,由类图转换为代码的框架中就直接用关联角色名作为声明中的变量的名字,如Employer为类Company的变量名employee为类Person的变量名等,另外Employer的可见性是protected也i生产的代码框架中体现出来。

因为指定关联的employee端的多重性为n,所以在生成的代码框架中employee是类型为Person的数组,关联类Contract有独立的属性。

(5)关联的约束

关联还可以加一些约束,以加强关联的含义,图11.13所示是两个关联之间存在的异或约束的例子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值