关联与依赖的区别

关联是“HAS”关系,依赖是“USE”关系
A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关系。
A类依赖B类,指的是B的对象作为A类的方法参数存在,称为“use”关系。

生命周期不同
如果A类关联B类,那么创建A类的对象时实例化B类的对象,直到A类对象被销毁,所关联的B类对象也被销毁。即只要A类对象存在,B类对象就存在。
如果A类依赖B类,那么只有当A类对象调用到相应方法时,B类对象才被临时创建,方法执行结束,B类对象即被回收,A类和B类之间的依赖关系是一种瞬时的关系。

时间: 2024-10-13 06:26:10

关联与依赖的区别的相关文章

关联与依赖以及组合与聚合之间的区别

最近在准备面试题,看到个问题是关联与依赖之间的关系,脑海里有印象,但还是比较模糊,百度了一番,将结果记录一下,以便后用. 聚合是表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体,比如电脑与鼠标就是典型的聚合关系,用UML图表示如下: 组合是表示两个对象之间是整体与部分的强关系,部分的生命周期不能超越整体,或者说部分不能脱离整体而单独存在,组合关系中的"部分"是不能共享的.人和眼睛就是典型的组合关系,用UML图表示如下: 组合和聚合都是在一个类中包含另一个类的对象,形式上

关联与依赖

一.类与类之间的关系: 关联关系: 1.单项关联:A类关联B类 2.双向关联:A类关联B类,B类关联A 依赖关系: 指一个类A使用到了另一个类B 依赖关系的特性 这种关系是具有偶然性的.临时性的.非常弱的,但是类B的变化会影响到类A. 继承关系实现关系(本质也是继承关系)

组合,聚合,关联,依赖,实现,泛化 ---UML关系

关于设计模式,有兴趣的朋友一起探讨下.我的bitbucket的地址 https://bitbucket.org/hinson0/pattern 组合,聚合,关联,依赖,实现,泛化 ---UML关系

UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)

UML定义的关系主要有六种:依赖.类属.关联.实现.聚合和组合.这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑.这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了:以下就分别介绍这几种关系: 继承[dependency] 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系通过关键字extends明确标识,在设计时一般没有

管理关联对象和NSDictionary区别

一.问题引出 为类添加关联对象: void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy) 为NSDictionary添加对象: - (void)setObject:(ObjectType)anObject forKey:(KeyType <NSCopying>)aKey; objc_setAssociatedObject可以理解为给object对象(NS

类与类之间的关系--泛化,关联,依赖,实现

类,对象是面向对象的基础,类与类之间的关系是面向对象不可或缺的一部分.下面将从类的关系定义,UML中的符号表示,代码实现三方面介绍类与类之间的关系. 1.泛化(Generalization):也成为继承关系.指一个类(子类或者子接口)继承另外一个类(父类或者父接口)的功能.并可以增加自己的功能.在程序程序中用关键字xtends明确标识,在UML设计中用空三角和实线表示,从子类指向父类,或者子接口指向父接口. 如图              代码: public class Cat { publi

认识UML中类之间的依赖、关联、聚合、组合、泛化的关系

什么是类? 将某类东西归纳在一起,可以成为一个类. 类有很多种提炼角度,需要根据系统地目标.业务的场景,选取合适的角度对事物进行归纳. 什么是类图? 类图可能是UML中使用的最多的一种图. 和其他图一样,类图的基本语法并不复杂,可能一两天就能掌握,但是真正做到灵活的使用类图,可能需呀多年的功力. 类图是锻炼OOA(OO Analysis)和OOD(OO Design)思想的重要工具,有助于OOA.OOD思想的提升. 本篇博文,重点讲述类图中类与类之间的关系以及这种关系在代码中的实现形式.写作本文

设计模式奠基石——UML转化为代码

1.继承关系(泛化关系) [说明]:继承关系是子类(派生类)继承父类(基类),或者子接口继承父接口的关系.即子类对象"is a" 父类对象,比如鸟是动物. [UML图]: 图解:Animal为父类,Bird类.Fish类.Dog类分别继承了Animal类,它们不仅继承了Animal的公用方法Breath(),同时也根据自己的实际需要拓展了相关方法(Fly()方法.Swim()方法.Run()方法). [对应代码]: //Animal类(父类): class Animal { publi

O-C相关-05:对象与对象的关系

对象与对象的关系 1.对象与对象的关系 依赖 关联 组合 常常讨论对象与对象关系时会提供两个属于:内聚性,耦合性 内聚一般指功能上的指向性 耦合一般指关联上的依赖性 2.依赖: 对象之间最弱的一种关联方式,是临时性的关联.代码中一般指由局部变量.函数参数.返回值建立的对于其他对象的调用关系. 依赖一般情况下是以下几种情况之一: a.ClassA中某个方法的参数类型是ClassB:  这种情况成为耦合: b.ClassA中某个方法的参数类型是ClassB的一个属性: 这种情况成为紧耦合: c.Cl