我正在考虑为更大的应用程序设计实体基类,并希望得到一些意见。主要是指定必须完成的方式或是否有更清洁的方式。
在解决方案中,我有一些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)
遗憾的是,由于多重继承是不可能的,因此会产生一些代码重复。
它还将设置通用服务和通用控制器基类的划分。
这是必须如何处理的,还是我错过了一些更有效地做到这一点的聪明方法?
答案 0 :(得分:1)
装饰设计模式怎么样:http://en.wikipedia.org/wiki/Decorator_pattern
它允许使用一些新行为扩展类层次结构而不重复 每次这整个层次。它还增加了扩展行为的好处 运行时(不仅在编译时)。