这是我的类图。实现“继承广场”的最佳方法
的问题是在AgendaInstance
(见红点)。我试图继承(重新使用)Agenda.Tasks
以包含自己的任务,其类型为TaskInstance
,子类型为Task
。
我可以把this.Tasks.Add(new TaskInstance());
放在AgendaInstance
的里面。该代码有效,但当我尝试序列化或绑定时出现问题。由于Tasks
静态绑定到Task
所有被序列化(例如,到xml)或绑定(例如,到网格行)的属性是Task
的属性,而不是TaskInstance
。
有没有我可以用来解决这个问题的设计模式?我不想影响(新)Tasks
在AgendaInstance
。这将打破拥有继承层次的目的。我的midi-chlorians告诉我有一个解决方案比直接处理序列化或绑定细节要高;这是一个“更深层次”的问题,可以帮助他们获得更为基础的解决方案。我要去泛泛而谈,但也许你知道更好的方法或更好的模式。
好像你可能想要使用一个通用类,比如'Agenda其中T:ITask',这样你的'AgendaInstance'类实际上是'AgendaInstance ',这样'Tasks'返回一个TaskInstance集合对象。 –
zzzzBov