2

我正在考虑为更大的应用程序设计实体基类,并希望得到一些意见。主要是如果指定的是必须完成的方式,或者是否有更清洁的方式。

在解决方案中,我有一些baseclass所有实体都将继承的变体。关系可以指定如下:

EntityBase//the primary baseclass containing name and id + other stuff 
NestedEntityBase:EntityBase //(if class will be able to contain lists of itself)

VersionedEntityBase:EntityBase //(Some parameters specific for versioned entities)  
VersionNestedEntityBase:NestedEntityBase// (versioned AND nested)

CurrentStateEntityBase:VersionedEntityBase// (the currentstate objects) 
VersionStateEntityBase:VersionedEntityBase// (old objects, saved when surrentstate objects change)

CurrentStateNestedEntityBase:VersionNestedEntityBase// (the currentstate objects) 
VersionStateNestedEntityBase:VersionNestedEntityBase //(old objects, saved when surrentstate objects change)

不幸的是,这会造成一些代码重复,因为多重继承是不可能的。

它还将为通用服务和通用控制器基类设置部门。

这是必须如何处理还是我错过了一些更有效地做到这一点的聪明方法?

4

1 回答 1

1

装饰器设计模式怎么样:http ://en.wikipedia.org/wiki/Decorator_pattern

它允许使用一些新行为来扩展类层次结构,而无需每次都复制整个层次结构。它还增加了在运行时扩展行为的好处(不仅在编译时)。

于 2013-07-06T17:47:35.177 回答