有条件地创建对象



我想知道什么是根据特定条件创建特定类型的对象的最佳方法?在这一点上,我有一个IF语句,该语句确定将实例化对象的类型。现在,如果我必须创建另一种类型,这将变得更加复杂。我想知道如何重构工作以更好地工作。

public Class1
{
    public string Property1;
}
public Class2 : Class1
{
    public string Property2;
}
public Class3 : Class1
{
    public string Property3;
}
public void Save(string property1)
{
    var object;
    if(property1 == "name")
    {
        object = new Class2();
    }
    else
    {
        object = new Class3();
    }
    // do something with the created object
}

您可以使用激活器尝试以下方法。为类创建映射

Dictionary<string, string> m_Dictionary = new Dictionary<string, string>();//Dictionary
 m_Dictionary.Add("one", "help.Class1");//Add class name with namespace
 m_Dictionary.Add("two", "help.Class2");
 m_Dictionary.Add("three", "help.Class3");

//更改以下的保存方法

    public void Save(string property1)
    {
        dynamic   obj ;
        obj= Activator.CreateInstance(Type.GetType((m_Dictionary[property1])));
        MessageBox.Show(obj.GetType().ToString());
    }

希望这有助于进一步重构

最新更新