设计模式中类与类之间的关系

本文详细介绍了设计模式中类与类之间的六种关系:继承、实现、依赖、关联、聚合和组合。这六种关系的耦合度依次增加,其中继承和实现属于纵向关系,其余四种为横向关系,主要体现在类之间的引用和合作关系。文章强调了在设计时应谨慎使用继承,多考虑使用组合和实现来提高代码的可重用性和可维护性。
摘要由CSDN通过智能技术生成

在设计模式中类与类之间的关系主要有6种:依赖、关联、聚合、组合、继承、实现,它们之间的耦合度依次增加。

一、继承关系       继承是一种“is-a”关系。 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口,是类和类之间存在父子关系。

二、实现关系       实现指的是一个class类实现interface接口(可以是多个)的功能,实现是类与接口之间最常见的关系。在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性。在UML类图设计中,实现用一条带空心三角箭头的虚线表示,从类指向实现的接口。 一个类实现一个或多个接口的方法,接口定义好操作的集合,由实现类去完成接口的具体操作

三、依赖关系       简单的理解,依赖就是一个类A使用到了另一个类B, 对于两个相对独立的对象,当一个对象依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。 而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A。比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。表现在代码层面,为类B作为参数被类A在某个method方法中使用。在UML类图设计中,依赖关系用由类A指向类B的带箭头虚线表示。 依赖关系是五种关系中耦合最小的一种关系。 一个类是另一个类的方法局部变量,方法的参数或方法返回值。 依赖是指类之间的调用关系,在UML中用带虚线的箭头表示。如果类A访问类B的属性或方法或者类A负责实例化类B则类A依赖类B,无须在类A中定义类B类型属性

四、关联关系    关联体现的是两个类之间语义级别的一种强依赖关系,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。在UML类图设计中,关联关系用由关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。  对于两个相对独立的对象,当一个对象与另一个对象有种某种对应关系,这两个对象之间为关联关系,比如老师和学生。关联分为单向关联,双向关联和自身关联,实现方法一般是A中包含B的某个指针或者引用。类A与类B的实例之间存在特定的对应关系,在UML中用带实线的箭头表示。如果类A与类B关联,类A含有B的属性
按照类之间的数量对比,关联可以分为3种:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值