2013-02-05 46 views
0

我目前正在实施其共享公共属性和基本相同的多个事件:模板。我们的事件提供者应用了几个事件,如SomeTemplateAddedEvent和SomeOtherTemplateAddedEvent。之后可能会出现更多变体,所以我考虑为每个TemplateAddedEvent实现一个基类,因为它们都共享公共属性。但我怀疑,如果这是正确的方式去,因为有些人喜欢的活动是包含每个属性而不是深度挖掘,以找出事件可以提供简单的类。DDD活动和抽象基类

我希望有人能摆脱对这个问题的一些情况。

回答

1

继承通常用于两个正交原因 - 重用功能性和声明一个“是”的类之间的关系。这似乎是你使用它的第一个原因。这个原因是一个较弱的论点,因为重复使用也可以通过合成达到。那么要问的问题是事件之间是否存在“是 - 是”关系。有时,事件之间的继承是可取的,例如,为从基类派生的所有事件提供处理程序是有意义的。

总的来说,我告诫不要继承,如果它仅适用于实现代码重用。如果这是关于域名的适当声明,那么它是有道理的。

+0

感谢您的见解。你是对的,原因是重用的目的。但是我想知道构建事件时组合是否可行。如果您在主事件类中定义了您的子类以防止不同事件之间的班级共享,我只能看到构图工作。由于您希望事件独立,因此在多个事件之间共享一个公共类是不必要的。你同意? – TheGuest

+1

共享基类不需要的原因有几个:使事件契约不太清楚,基类的变化影响所有后代,可能有序列化问题等。如果所有这些都是预期的,则可以谨慎使用基类。根据经验,过度使用可能会成为[谬误](http://www.udidahan.com/2009/06/07/the-fallacy-of-reuse/)。 – eulerfx