寻找设计帮助

时间:2010-04-16 12:31:08

标签: design-patterns

我在大多数具有网格的WindowsForms中都有这种情况 我有一系列相似的代码 - AddNewRow(在网格中),CreateNewEntity,notifyUser,其他一些步骤 现在,我想使用模板类型的模式。但是,我的问题是使用CreateEntity方法,因为有时会传递一个参数,该参数根据正在创建的对象的类型而不同。我应该让createentity接受“对象”类型,在使用该参数时进行转换。我还能以其他方式解决这个设计问题吗?此外,CreateEntity返回正在创建的对象。

实际上,我的场景有MVP模式。现在,大多数表单中的演示者和视图之间的大部分交互是相同的 - 用户点击添加,添加了一个新行,其中包含一些实体的默认值(在网格中显示) ),其他一些常见的东西

1 个答案:

答案 0 :(得分:0)

您是否考虑使用模板化功能?这可能不是一个很好的例子,但如果没有更具体的信息,很难想象一个好的例子:

interface IInitializable
{
   void Initialize(string input);
}

public T CreateNewEntity<T>(T inputObject, string otherData) where T : IInitializable
{
   inputObject.Initialize(otherData);
   return inputObject;
}