Posted on 2006-01-23 23:01
canonical 閱讀(976)
評論(0) 編輯 收藏 所屬分類:
軟件開發(fā)
代碼復用包括兩個方面:概念復用和實現(xiàn)復用。這兩者在C++的虛擬函數(shù)設計中是合二為一的,結果概念上的模糊往往造成繼承機制的濫用。為了復用我們往往在
基類中塞入過多的職責,并在程序中制造了過多的層次。java的interface是純粹的概念復用機制,實現(xiàn)方面的復用我們一般通過Impls類或者
Utils類來進行,即將代碼片斷寫為靜態(tài)函數(shù)。一般應該避免在類中寫特別多的幫助性成員函數(shù),因為成員函數(shù)隱含的通過成員變量相關著,比靜態(tài)函數(shù)要更加
難以控制。
類是一個整體的概念,整體概念失效了,類也就不存在了。從這一點上來說,它未必是比靜態(tài)函數(shù)更加穩(wěn)定。概念與實現(xiàn)是兩個不同層面的東西。實際上它們一般也
是多對多的關系。同一個概念可能換用多種不同的實現(xiàn),而同一段功能代碼也可能在多個類中使用。
代碼復用的意義不僅僅在于減少工作量。實際上復用是對軟件的一種真正的檢驗,而測試僅僅是一種模擬的檢驗而已。每一次復用都是對代碼的一次拷問。在不斷使
用中感受到不同使用環(huán)境中的各種壓力,才能實現(xiàn)概念的不斷精化并確保實現(xiàn)的正確性。