最近我正在竊取一些代碼與外部web api進行通信。 web api是一組GET/POST操作,返回Xml,從我的應用程序通過HttpWebRequest調用並在我的一邊使用Linq to Xml進行操作。導出或注入
有一些形成多個服務的API方法的邏輯分組。我創建了代表這些服務的類。每個服務都必須通過同一組響應頭聯繫相同的基本uri和base。也就是說,我的所有服務類之間都有一系列共享方法。我對這些常用方法執行了Extract Method超類重構,並繼承了我所有的服務類,形成了新的超類。重構所涉及的所有方法都涉及配置到遠程api的底層連接,並處理返回的原始數據,例如將xml反序列化爲POCO。
我剛剛問我爲什麼使用繼承使用從基類,而不是在其注入的方法。坦白說我有沒有真正很好的答案,所以我想知道爲什麼這個問題被問什麼是繼承注射的優點。我知道基本的OO設計原則表示我們應該贊成構造而不是繼承,並且我可以看到如何重構組合,但我不確定這會給我帶來什麼好處。
我的同事說過「不僅更容易測試......而且更容易測試」。我可以看到他的論點,但我想知道更多。希望我已經提供了足夠的信息以獲得明智的迴應。
「支持組合繼承」...? – 2010-10-14 02:11:42
http://haacked.com/archive/2007/12/11/favor-composition-over-inheritance-and-other-pithy-catch-phrases.aspx或http://www.artima.com/lejava/articles /designprinciples4.html根據GoF – 2010-10-14 02:48:28