一直没有搞清楚这几个概念,这里做总结。来自《大话设计模式》。
1. 关联(association)
仅仅表示对象A“知道”对象B,对象A并不“拥有”对象B(这里的“知道”和“拥有”并不一定是从业务逻辑上判断,应该宽泛到从常识上判断)。如下图:
企鹅“知道”气候,但并不“拥有”气候,在代码上反映为:
class Penguin extends Bird {
private Climate c;
}
2. 聚合(Aggregation)
聚合在关联的基础上更近一步,表示一种弱“拥有”关系,对象A可以包含对象B,对象B可以是对象A的一部分,但也可以不是(在代码上的表现是对象B为null)。如下图:
虽然雁群理所当然应该包含大雁,但也存在着null雁群,即WildGoose数组为空的情况。从代码上看:
class WildGooseGroup {
private arrayWildGoose WildGoose[];
}
与关联并没有什么不同。的确是这样,关联和聚合的区别仅体现在这两个对象在业务逻辑或是在常识中的关系,在代码层次是没有区别的。
3. 组合(Composition)
在聚合关系上更进一步,表示一种强“拥有”关系,对象A和对象B的生命周期一样,通俗说来就是“同年同月同日生,同年同月同日死”。如下图:
鸟必然“拥有”翅膀,如果Wing[2]为空,那么这个这个Bird对象是不应该存在的。在代码上体现为:
class Bird extends Animal {
private wings Wing[2];
public Bird() {
wings[0] = new Wing();
wings[1] = new Wing();
}
}
可见Bird和Wing对象是强制绑定在一起的。
4. 依赖(Dependency)
依赖表示一种“需要”的关系,但一般被依赖的对象B不是对象A的成员。如上图所示,鸟的新陈代谢需要氧气和水,但氧气和水都不会是鸟的成员。依赖和关联的区别大抵体现于此。
- 大小: 1.2 KB
- 大小: 1.7 KB
- 大小: 3.9 KB
分享到:
相关推荐
NULL 博文链接:https://aoyi.iteye.com/blog/631929
0X2B循环for前置知识0X29再谈循环正文Lua除了while和repeat语句还提供了一种for循环语句.while和repeat语句循环终止条件可以是任
0X0E中学算术前置知识0X0D数学库函数正文有了三角函数、反三角函数、对数函数、求幂运算,中学阶段涉及的所有具体的数值计算基本就都可以求解。求此表达式的值:第
目录图例Stage1 入门Stage2 基础Stage3 字符串处理Stage4 理解函数Stage5 表结构Stage6 流程控制Stage7 模块Stage
1. 度量脚本执行时间 2. 记录时间 3. 计算时间间隔
WIN10共享打印机出现0x0000011b共享打印机无法连接错误,为了快速处理此问题 ,金石开发了此工具,用于快速修复此错误。只要在共享打印机的电脑上选中此文 件点鼠标右键,在出现的菜单中选择“以管理员身份运行”...
域的定义如果交换环还额外满足以下条件,则称为域:乘法单位元和加法单位元不相等(1不等于0)。由于存在乘法逆元,就意味着可以进行“除法”,所以有的书上也把域称作
安全运营相关文章本篇整理一些安全运营相关的高质量文章[2] 体系化的WAF安全运营实践, 安全研究与实践,
#0 0x00002b9405ea1c38 in __lll_mutex_lock_wait () from /lib64/libc.so.6 #1 0x00002b9405e45e5f in _L_lock_4026 () from /lib64/libc.so.6 #2 0x00002b9405e42df1 in free () from /lib64/libc.so.6 #3 0x00002...
dell机子出线蓝屏0x0000007b时,只是一个设置的问题很容易的,解决办法一下子就能解决
NULL 博文链接:https://aoyi.iteye.com/blog/723571
修复链接共享打印机0x0000011b错误
修复链接共享打印机0x0000011b错误 在共享主机上双击0x0000011b.reg文件,合并注册表信息,重启即可。
windows无法连接到打印机,操作失败,错误为0x0000011b,0x00000709
在 Windows 10 或 Windows 11 上打印文档应该是一件容易的事。您需要打开文档并单击“打印”选项或按 Ctrl 和 P ...不幸的是,错误代码 0x0000011b有时可能会破坏您的计划,阻止您连接到打印机。 该软件一键修复该问题
解决:Windows 10系统连接共享打印机报错0x00000709、0x0000007c、0x0000011b
解决win10系统共享打印机时报0x0000011b错误导致无法添加共享打印机的问题
WIN10共享打印机补丁(0x0000011b)
试图加载格式不正确的程序。 (异常来自 HRESULT0x8007000B)