设计模式:将不同类型的对象合二为一

时间:2014-06-01 11:22:09

标签: c# design-patterns

我想将不同类型的对象转换为一个。

例如我有: Object1:class1的 对象2:类2 Object3:CLASS3

所有对象都不同,我无法让它们继承一个接口。

在转移到应用程序的另一部分之前,我想将它们转换为ObjectDTO:ClassDTO。

在这种情况下可以使用哪种设计模式?

1 个答案:

答案 0 :(得分:1)

您可以在C#中使用implicit类型转换运算符:

public class Object1DTO 
{
    public int Property {get; set;}
}

public class Object1 
{
    public int Property {get; set;}

    public static implicit operator Object1DTO(Object1 object1)
    {
        return new Object1DTO { Property = object1.Property };
    }
}

或者您也可以使用扩展程序:

public static class Extensions 
{
    public static Object1DTO ToDTO(this Object1 object1)
    {
        return new Object1DTO { Property = object1.Property };
    }
}

您还可以查看automapper之类的库来处理此类对象 - 对象映射方案。