我有三個不同的對象,其作爲輸入來創建對象A.三種不同的對象有:C#根據不同的類型使用哪種模式來創建類型?
- 的DataRow
- 對象A(當我想創建一個副本)
- 對象B(容貌像對象的,但不同的是,而不是一個亞型)
現在我有一個看起來像這樣的對象的靜態方法:
public class ObjectA
{
// class code
public static ObjectA CreateFromType(DataRow row) {/*implementation */}
public static ObjectA CreateFromType(ObjectA obj) {/*implementation */}
public static ObjectA CreateFromType(ObjectB obj) {/*implementation */}
}
這是一個好方法嗎?這是否違反OCP的代碼味道?你將如何實現這一點?
我同意。創建重載的構造函數,每個接受不同的對象類型作爲參數。 – tobias86 2011-03-30 08:25:42
多麼愚蠢,我從來沒有想過使用構造函數! – Martijn 2011-03-30 08:34:02