实体设计和继承

时间:2013-07-04 06:49:29

标签: c# inheritance entity base-class

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

在解决方案中,我有一些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)

遗憾的是,由于多重继承是不可能的,因此会产生一些代码重复。

它还将设置通用服务和通用控制器基类的划分。

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

1 个答案:

答案 0 :(得分:1)

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

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