优点
在 .NET 中实现 Observer 有以下优点:
- 取消了依赖性。上述示例清楚地显示出 Album 和 BillingService 类之间的依赖性已经取消。
- 提高了可扩展性。“.NET 中的观察器”示例说明了添加新类型的观察器是多么简单。Album 类是“开-闭”原则的一个例子,最初是 Bertrand Meyer 在 Object-Oriented Software Construction 第二版 [Bertrand00] 中编写的,它描述了一个易于扩充但不必修改的类。Album 类体现了这种原则,因为您可以添加 PlayEvent 的观察器,而不必修改 Album 类。
- 提高了可测试性。“测试考虑事项”说明了您为什么可以不必对 BillingService 进行实例化就能测试 Album 类。测试验证了 Album 类能正确运行。测试还提供了如何编写BillingService 的出色示例。
缺点
如示例所示,Observer 的实现简单而直接。不过,随着委派和事件的数目不断增加,我们很难跟踪当事件触发时发生了什么情况。因此,代码变得很难调试,因为您必须在代码中搜索观察器。
参考文章:
http://msdn.microsoft.com/zh-cn/library/ms998543.aspx
http://msdn.microsoft.com/zh-cn/library/ff649896.aspx
http://msdn.microsoft.com/zh-cn/library/ms954621.aspx
时间: 2024-10-12 16:47:06