3 回答
TA贡献1785条经验 获得超4个赞
可能的清洁选项是在每个文档必须实现的名为 GetView 的接口中只具有一个签名。这样每个文档类型都有自己的实现函数的方式,调用函数知道每个文档都有一个函数 GetView。如果每个文档都有独特的查看文档的方式,则此方法将很有效。但是,如果某些文档共享相同的获取视图的方式,那么我是否建议将每个视图类型创建到它们自己的类中,并且您可以将视图类型分配给每个文档。我建议研究策略模式。
第一个建议:
class SimpleDocumentViewModel : IAuthorViewModel
{
view GetView()
{
... do document specific stuff
... return view
}
}
class ExtendedDocumentViewModel : IAuthorViewModel
{
int ExtraData { get; set; }
int MoreExtraData { get; set; }
view GetView()
{
... do document specific stuff
... return view
}
}
interface IAuthorViewModel
{
view GetView();
}
第二个建议:
class SimpleDocumentViewModel : IAuthorViewModel
{
public viewType1 view {get;set;}
public SimpleDocumentViewModel(viewType1 viewIn,etc...)
{
view = viewIn;
}
view GetView()
{
return view.GetView();
}
}
class ExtendedDocumentViewModel : IAuthorViewModel
{
int ExtraData { get; set; }
int MoreExtraData { get; set; }
public viewType2 view {get;set;}
public ExtendedDocumentViewModel(viewType2 viewIn,etc...)
{
view = viewIn;
}
view GetView()
{
return view.GetView(ExtraData,MoreExtraData);
}
}
interface IAuthorViewModel
{
view GetView();
}
- 3 回答
- 0 关注
- 160 浏览
添加回答
举报