我有一個問題,我正在以完全相同的方式爲不同的子類型創建一個新的子項。我無法重用我調用的方法,因爲我不知道如何動態設置新實例的類型。動態設置新實例的類型
if (radioSomeType.Checked)
{
SomeType child = new SomeType();
child.MdiParent = parent;
child.Open();
}
else if(radioSomeOTherType.Checked)
{
SomeOtherType child = new SomeOTherType();
child.MdiParent = parent;
child.Open();
}
我設置一些其他屬性和調用此片內的一些其他方法爲好,但我已經在這個示例中刪除它們。
我知道如何使用接口,但我不知道如何爲實例初始設置類型。
我想,以減少重複,做這樣的事情:
if (radioSomeType.Checked)
{
SomeType child = new SomeType();
}
else if(radioSomeOTherType.Checked)
{
SomeOtherType child = new SomeOTherType();
}
child.MdiParent = parent;
child.Open();
我的問題是,即使我嘗試使用界面,我還需要內有條件的原因形成的情況下(這是什麼我期望)。
你不應該在有條件的創建obect,檢查了工廠模式:http://msdn.microsoft.com/en-us/library/ee817667.aspx –
@ChrisHardie我明白你的意思,但是工廠模式在這種情況下並不有用。我正在創建MDI兒童 - 不存在至少有一個單選按鈕被選中的情況。 – grovesNL
我想你誤會了。您可以將選中的單選按鈕的值傳遞給工廠,工廠將確定要傳回的對象。它可以讓您的調用代碼免於決定創建哪個對象的責任。如果你有很多單選按鈕,工廠就會很好地清理它們。 –