2008年3月17日 星期一

M11 替代的作法(6)──Class遵循生成與消滅的Interface

對於一個Interface的實作,第一步要建立實作Class的結構;先在Class Diagram放置好Interface、Abstract Class與Class的結構再一次匯出到workspace裡,會是比較理想的作法。在製作Class Diagram的時候可以同時在圖表裡檢視繼承與實作的正確性,直接寫程式的話製作的只是單線動作,無法快速得到立體的結構。

接著放置好每個Abstract Class與Class的constructor()、initialObject(), disposeObject、並依規範呼叫super();這部分的基本型態可以另存文字檔再複製回來,修改constructor()的名稱就可以快速完成。最後在Class裡依建立時間點來呼叫initialObject()。這些Method檢查無誤後再reverse回rose model微調Class Diagram的位置。

finalize()是Java物件在回收前最後執行的動作,但是它是無法取代disposeObject()的,因為它必須確定無其他物件使用後才會執行,沒法主動作出釋放資源的動作。設計時養成在哪個Class生成資源就在哪個Class裡負責釋放才是良好的習慣;如果資源是由Factory生成並傳出使用時,得另外確認它的消滅時間點,並在那時呼叫資源的disposeObject()。

沒有留言:

張貼留言