- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可见性有3种层次 级别 : 在公有 public 层次上,其他类可以直接访问这个层次中的属性和操作。 在受保护 protected 的层次上,只有继承了这些属性和操作的子类可以访问最初类的属性和操作。 在私有 private 层次上,只有最初的类才能访问这些属性和操作。 实现关系意味着接口中的所有操作都是公有的。将这些操作对外界隐蔽起来没有什么意思,因为接口本来就是为了让外界不同的类来实现它而定义的。 4.4.2 作用域 作用域 scope 是与属性和操作相关的又一个重要概念。 存在两种作用域: 在实例 instance 作用域下,类的每个实例对象都有自己的属性值和操作。 在分类 classfier 作用域下,一个类的所有实例只存在一个属性值和操作。 具有分类作用域的属性和操作名字要带下划线,通常用在一组特定的实例 不包括其他的实例 必须共享某个私有属性值的情况下。而实例作用域是最普通的作用域类型。 * * 第四章 聚集、组成、接口和实现 ● 聚集(聚合) ● 组成(复合) ● 语境 ● 接口 ● 实现 ● 可见性 学习类图的最后一些内容,包括前面还没学习的一些关系以及其他问题。最终的目标是要建立系统的静态视图,完成系统类之间的所有连接关系。 4.1 聚集(Aggregate) 一个类有时是由几个部分类组成的。这种特殊类型的关系被称为聚集。部分类和由它们组成的类之间是一种整体与部分的关联。 例如家用计算机 Home computer 是一个聚集体,它是由主机箱、键盘 Keyboard 、鼠标 Mouse 、显示器 Monitor 、CD—ROM驱动器、一个或多个硬盘驱动器 Hard drive 、调制解调器 Modem 、软盘驱动器 Diskette drive 、打印机 Printer 组成,还可能包括几个音箱 Speaker 。而主机箱内除CPU外还带着一些驱动设备,例如显示卡 Graphics card 、声卡Sound card 和其他组件。 按照聚集关系的表示法,聚集关系构成了一个层次结构。“整体”类 例如,家用计算机系统 位于层次结构的最顶部,以下依次是各个“部分”类。整体和部分之间用带空心菱形箭头的连线连接,箭头指向整体。下图示意了家用计算机系统的组成。 聚集具有传递性,换句话说,如果类3是类2的部分类,并且类2是类1的部分类,那么类3是类1的部分类。在上面的例子中,鼠标按钮和鼠标球是鼠标的一部分,并且也是计算机系统的一部分。 有时一个聚集体可能有多种部分体组成,这些部分体之间是“or 或 ”关系。例如在某些餐馆中,一顿饭包括汤 Soup 或者沙拉 Salad 、主食 Main course 和甜点 Dessert 。要对这顿饭建模,必须使用一个约束——在两个整体—部分关系线之间加上一花括号括起来的“or”来表示这个约束,并用虚线连接两个关系线。 4.2 组成 复合Composition 组成是强类型的聚集。聚集中的每个部分体只能属于一个整体。例如,咖啡桌 CoffeeTable 是一个组成体,它的部分体有桌面 TableTop 和桌腿 Leg 。组成的表示法和聚集的表示法类似,但是菱形箭头是实心。 4.3 语境 组成结构图 在对系统建立模型时,类通常以类族的形式出现,这些类族中的类之间常常有聚集或组成关系。有时可能需要集中考察其中的某个类族,UML语境图提供了这种建模特征。语境图有点像一幅大图中某个局部的子图。有时需要将一个大图中某些局部“放大”来获取详细信息。 举个例子,假设你要建立一个衬衫 Shirt 的类模型,并要说明衬衫的尺寸和组成。一种类型的语境图就是将衬衫类画成一个大矩形框,里面嵌套了该衬衫的各个组成部分的类图。 下图说明了衬衫的各个组成部分之间如何关联。 组成语境图重点关注衬衫和衬衫的内部构成。如果要展示衬衫加上衣挂,挂在衣架上,放在衣柜中的情形,那么必须要扩大建模范围。系统语境图 system context diagram 可以用来为此建模。它可以说明衬衫类如何与衣柜 Wardrobe 和衣挂类 Outfit 关联。 4.4 接口和实现 我们建立了几个类之后,可能会发现这些类并不与某个特定的父类相关,但是它们的行为中可能包括同样的操作和同样的型构,可以对其中的某个类编码,然后在其他的类中重用这些编码。另一种可能的情况是开发了一个系统中类的一组操作并在另一个类中可以重用这些操作。 不管是哪种方式,都需要这些可重用的操作集。接口可以达到此目的。 接口 interface 是描述类的部分行为的一组操作,也是一个类提供给另一个类的一组操作。 例如,用来和计算机通信的键盘 keyboard 就是一个可重用的接口。键盘的击键 Keystroke 操作可以被打字机 Type
文档评论(0)