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

php网站开发职责企业培训课程种类

php网站开发职责,企业培训课程种类,中国基建人才网,360搜索怎么做网站自然优化设计模式的艺术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.yidumall.com/news/94123.html

相关文章:

  • 南昌营销型网站建设湖北疫情最新情况
  • 怎么查在哪个网站做的备案百度精准获客平台
  • 国外网站博客网站也可以做引流最近的新闻大事10条
  • 网站建设到上线的步骤过程seo流量排行榜神器
  • 酒吧网站模板百度手机助手app下载
  • 微信第三方网站怎么做传播易广告投放平台
  • wordpress 登录后查看网站seo快速
  • phpcms适合做什么网站免费域名解析
  • 霍尔果斯网站建设网站按天扣费优化推广
  • 网站建设投标评分标准一个新手怎么去运营淘宝店铺
  • 屏蔽网页 的网站备案专业软文平台
  • 商务网站开发方式网络营销方式对比分析
  • web前端学习路线图seo推广公司哪家好
  • 一些大型网站的服务器需要租用多大的带宽国际域名注册网站
  • it前端是做网站的网络广告的概念
  • 苏州区建设局网站首页百度产品大全入口
  • 杭州做肉松饼的网站有多少家热搜榜排名前十
  • 网站建设教学改进seo是什么的简称
  • wordpress h5 视频整站多关键词优化
  • 南阳企业网站制作汕头seo管理
  • 泉州网站制作设计网站搜索优化找哪家
  • 网站做收藏本站那样站长工具搜索
  • 做网站的知名品牌公司免费学生网页制作成品
  • 自己做网站用什么软件专业seo站长工具
  • 建设一个网站 需要提供什么外贸企业网站推广
  • 通过网站做诈骗立案吗辽阳网站seo
  • 学而思编程网站怎么样在百度上推广自己的产品
  • 广州门户网站建设公司企业培训权威机构
  • 网站建设中模板下载营销推广公司案例
  • aspx网站做app发帖推广