面向对象设计中对象生命周期的视图集成
在面向对象设计里,视图集成是一项关键任务,尤其是在处理对象生命周期的不完整视图时。由于外部的异质性,集成过程需要区分不同的情况,下面来详细介绍。
1. 集成过程概述
在集成过程中,由于外部存在异质性,需要区分以下几种情况。这里将视图分别称为 V1 和 V2,视图中考虑的扩展分别称为 E1 和 E2。
- 相同扩展 :如果两个视图考虑的是相同扩展,那么它们通过特化进行集成。也就是说,集成模式是 V1 和 V2 的观察一致特化。在这种情况下,视图可以观察集成模式中对象的处理。不存在扩展异质性需要考虑,而内涵异质性按以下方式处理:
- 粒度冲突通过在最详细级别集成元素来解决。
- 特定于视图的扩展会被集成。
- 特定于视图的替代方案会被省略。
- 不相交扩展 :模式 V1 和 V2 可能定义相同对象类型的视图,但考虑不相交的扩展。不过,它们会包含相应的元素,例如为 E1 和 E2 的所有对象执行的活动。要求集成对象生命周期 V 为扩展 E1∪E2 定义行为。虽然每次只集成两个对象生命周期,但可以通过应用二进制集成策略来集成 n 个对象生命周期。直观地说,所有在至少一个视图中允许的生命周期事件都必须反映在集成对象生命周期中。因此,抽象元素的所有不同细化、所有特定于视图的替代方案以及所有特定于视图的扩展都必须包含在内。由于 V 为 E1 ∪E2(即 E1 和 E2 的超类)定义行为,所以它必须是 V1 和 V2 的观察一致泛化。
- 重叠扩展 :最常见的情况是 E1 和 E2 重叠。这种情况可以简化为
超级会员免费看
订阅专栏 解锁全文
3万+

被折叠的 条评论
为什么被折叠?



