当前位置: 首页 > news >正文

江苏企业建站科技公司起名

江苏企业建站,科技公司起名,成都网络建站,网站策划运营方案设计模式的艺术P1基础—2.3 类之间的关系 在软件系统中,类并不是孤立存在的,类与类之间存在各种关系。对于不同类型的关系,UML提供了不同的表示方式 1.关联关系 关联(Association)关系是类与类之间最常用…

设计模式的艺术P1基础—2.3 类之间的关系

在软件系统中,类并不是孤立存在的,类与类之间存在各种关系。对于不同类型的关系,UML提供了不同的表示方式

1.关联关系

关联(Association)关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系,如汽车和轮胎、师傅和徒弟、班级和学生等。在UML类图中,用实线连接有关联关系的对象所对应的类。

在使用类图表示关联关系时可以在关联线上标注角色名,一般使用一个表示二者之间关系的动词或者名词表示角色名(有时该名词为实例对象名),关系的两端代表两种不同的角色。

如在一个登录界面类LoginForm中包含一个JButton类型的注册按钮loginButton,它们之间可以表示为关联关系。

1)双向关联

默认情况下,关联是双向的。例如,顾客(Customer)购买商品(Product)并拥有商品,反之,卖出的商品总有某个顾客与之相关联。

2)单向关联

类的关联关系也可以是单向的,在UML中单向关联用带箭头的实线表示。例如,顾客(Customer)拥有地址(Address),则Customer类与Address类具有单向关联关系

3)自关联

在系统中可能会存在一些类的属性对象类型为该类本身,这种特殊的关联关系称为自关联。例如,一个节点类(Node)的成员又是节点Node类型的对象

4)多重性关联

多重性关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系。

如,一个界面(Form)可以拥有零个或多个按钮(Button),但是一个按钮只能属于一个界面,因此,一个Form类的对象可以与零个或多个Button类的对象相关联,但一个Button类的对象只能与一个Form类的对象关联。

5)聚合关系

聚合(Aggregation)关系表示整体与部分的关系。在聚合关系中,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在。

在UML中,聚合关系用带空心菱形的直线表示。

例如,汽车发动机(Engine)是汽车(Car)的组成部分,但是汽车发动机可以独立存在,因此,汽车和发动机是聚合关系

6)组合关系

组合(Composition)关系也表示类之间整体和部分的关系,但是在组合关系中整体对象可以控制成员对象的生命周期。一旦整体对象不存在,成员对象也将不存在,成员对象与整体对象之间具有同生共死的关系。在UML中,组合关系用带实心菱形的直线表示

例如,人的头(Head)与嘴巴(Mouth),嘴巴是头的组成部分之一,而且如果头没了,嘴巴也就没了,因此头和嘴巴是组合关系,如图2-8所示。

2.依赖关系

依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

例如,驾驶员开车,在Driver类的drive()方法中将Car类型的对象car作为一个参数传递,以便在drive()方法中能够调用Car类的move()方法,且驾驶员的drive()方法依赖车的move()方法,因此类Driver依赖类Car

3.泛化关系

泛化(Generalization)关系也就是继承关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。

在Java语言中使用extends关键字。

例如,Student类和Teacher类都是Person类的子类,Student类和Teacher类继承了Person类的属性和方法,Person类的属性包含姓名(name)和年龄(age),每一个Student和Teacher也都具有这两个属性。

4.接口与实现关系

在接口中,通常没有属性,而且所有的操作都是抽象的,只有操作的声明,没有操作的实现。

UML中用与类的表示法类似的方式表示接口。(接口的类图,左上角有一个空心圆+短线)

接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现(Realization)关系。

在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。

如,定义了一个交通工具接口Vehicle,包含一个抽象操作move(),在类Ship和类Car中都实现了该move()操作。

如在Java语言中使用implements关键字,而在C#中使用冒号“:”来实现

http://www.yayakq.cn/news/482787/

相关文章:

  • 深一集团的网站谁做的触屏网站建设
  • 网站开发与应用案例国外网络销售平台有哪些
  • 安徽网站建设推荐 晨飞网络wordpress首页调用所有分类
  • 查询网站开发的端口wordpress 网页计算器
  • 好一点的网站鲜花网站建设主要内容
  • 订单拆单在电商网站建设wordpress首页js怎么添加图片
  • 长春市网站制作自创网站的软件下载
  • 南通网站建设总结做视频免费模板下载网站
  • 网站加速服务一元夺宝网站建设费用
  • 自己做h5网站腾讯地图如何标注自己店铺位置
  • 网站公众平台建设方案电话语音聊天网站建设多少钱
  • 免费推广网站哪家好视频制作公司经营范围
  • 济南小程序网站开发wordpress的字体大小
  • 番禺制作网站设计电商运营的基本流程
  • 湖北做网站价格淘宝客自己做网站
  • 福建大舟建设集团有限公司 网站中国企业信用信息查询网官网
  • 用c 可以做网站吗专为网站做点击量
  • 学校网站建设主要成绩热点事件舆情分析
  • 哪些网站做推广比较有效果手机百度2022年新版本下载
  • 网站建设过程规划和准备阶段宁波网站建设最好的是哪家
  • 绑定网站域名怎么做软件开发工具教材
  • 网站开发的规格描述深圳网站关键词推广
  • 国外访问国内网站速度深圳公司举报网站
  • 腾讯建设网站视频视频全国建设部官方网站
  • 手机版网站推荐想做一个网站
  • 如何写好网站建设方案详情页设计收费
  • 汽车保险网站wordpress放视频播放器
  • 营销型网站建设答辩免费企业查询网站
  • 网站用户 微信商城承德网站开发区地税
  • 为女人网上量体做衣网站wordpress 怎么学