2010-08-30 39 views
0

如果我創建了一個大多數函數用於覆蓋的庫,這意味着您需要將您的邏輯放入一些初始庫函數中,以便從庫中獲取所需內容。會是正常的\通常\好嗎?這樣的圖書館會被稱爲框架嗎?什麼是更好的 - 多態性或繼承作爲與.net庫操作的概念?

例子在我的圖書館我有CreateData功能,很多其他的功能,一個,讓我們把它叫做Main功能,它使用大量的功能庫,有可以理解的邏輯,是剛剛篦獲得你想要的一些結果謹慎快速的方式。唯一的是它也使用CreateData函數。所以你可以直接調用Main並獲得一些隨機\由圖書館創建者數據預先生成的結果,但是當你想要時,不要自己實現Main,只需更改數據創建邏輯即可覆蓋CreateData函數。

從OOP的角度來看,這樣的方式還是可以的,或者我應該使用多態性重寫Main?

但如果我將開始使用多態,我可能會需要用它來所有20-50功能我已經在主要使用現在的剛剛超過寫的...

回答

0

我會說「以上都不是 - 組成通常最好」。

多態性意味着繼承。一般來說,當你設置多態行爲時,你會覆蓋虛擬方法。

這聽起來像你在做什麼是Template Method Pattern

我強烈建議爲你的庫(或框架;這些術語通常是可以互換的)編寫單元測試。這將迫使你從客戶開發者的角度使用你自己的代碼(技術術語是「dogfooding」)。該技術有助於找到痛點。

我還推薦閱讀Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (2nd Edition)並運行其配套工具FxCop。您將學習專家的最佳實踐。