2010-07-22 43 views
1

我有四个不同的业务对象,每个调用其相应的FillBusinessObject方法来逐个填充所有单个对象属性。现在我想创建一个应该能够填充每种类型的业务对象的通用方法。我创建了一个基类,所有业务对象都从这个基类继承,但我无法弄清楚如何从一个通用方法填充单个对象属性。如何从单一方法填充多种类型的业务对象?

这是可能的(如果是的话,那么如何)还是我在梦幻世界?

P.S.我不希望采用像LINQ这样的其他路线。

+0

你有没有想过像Autofac或ninject librbaries? 只有当您从另一个模型/对象填充模型/对象时,这才会起作用。 – Ahuman 2014-12-19 14:16:09

回答

1

看起来你太过复杂了。

您可以编写一个方法来填充属于公共基类的部分,然后为每种类型调用specialize方法。

+0

好的..你的意思是说用单独的方法来填充每个业务对象是最优的吗? – Dienekes 2010-07-22 18:47:38

+1

最好的可读性,是的。 – 2010-07-22 18:48:52

+0

和从最佳实践的角度? – Dienekes 2010-07-22 18:56:21

0

怎么是这样的:

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Create some business objects and ask them to initialize 
      // themselves. 
      // 

      var bo1 = new BusinessObject1(); 
      var bo2 = new BusinessObject2(); 

      bo1.Fill(); 
      bo2.Fill(); 
     } 

     public abstract class BusinessObjectBase 
     { 
      public int x { get; private set; } 

      public virtual void Fill() 
      { 
       x = 123; 
      } 
     } 

     public class BusinessObject1 : BusinessObjectBase 
     { 
      public int y { get; private set; } 

      public override void Fill() 
      { 
       // Let base class fill itself. 
       base.Fill(); 

       // Now we fill our own properties. 
       this.y = 456; 
      } 
     } 

     public class BusinessObject2 : BusinessObjectBase 
     { 
      public int z { get; private set; } 

      public override void Fill() 
      { 
       // Let base class fill itself. 
       base.Fill(); 

       // Now we fill our own properties. 
       this.z = 456; 
      } 
     } 
    } 
} 
+0

^^和Henk说的不一样吗? – Dienekes 2010-07-23 17:54:36

相关问题