我們正在研究共享相同代碼的兩條產品線。2共享相同代碼的產品線
對於不同的功能,我有兩條產品線都實現相同的接口(或者在某些情況下是基類),並且這些類型將在Main類(兩個產品線分開)中創建並向下遊傳遞。
對於業務邏輯內部的代碼,很難有產品線特定的代碼。我們不希望用戶if(ProductLine ==「ProductLine1」)和其他方法。
所以我打算實現一個Factory類,它將有靜態方法返回NewObject1(),NewObject2()等。此Factory類將作爲Factory.RegisterClient(ProductLine1)在Main類中進行註冊。
因此,通過上述方法,工廠(其內部包含ProductLine1Factor & ProductLine2Factory)知道要創建哪種類型的對象。
您是否知道解決此問題的更好方法?請注意,ProductLine1已經存在,ProductLine2是新東西(但與ProductLine1相似)爲90%。我們不能進行劇烈的重構,以至於兩條產品線都存在。我們希望儘可能進行微創代碼更改。
工廠方法通常會暴露一個接口,但接口的問題是我無法暴露也需要的靜態類型。
如果有些專家會說點什麼,我會非常感激。
謝謝Wiktor。 Unity也是一個不錯的選擇。 – scriptuser 2013-03-22 16:18:49