2008年3月24日 星期一

M18 系統軟體架構的層次(4)──各類Method的佈置與可見程度

在一個Interface實作的Class裡所使用到的Mehod,在類型上主要有入口、流程與動作三類;不過在使用層面上會依據以下各個情況來定義Method的修飾字:(這是我自己使用的方式,適用在Abstact Class)

Interface的實作方法就依宣告使用public。倘使這個Interface不希望給其他Package使用,在宣Interface前不要使用public,但是Method還是使用public宣告。記得在其他物件使用時務必呼叫在Interface裡有宣告的方法以維持入口的統一。

在實作時額外定義的方法,基於讓所有繼承它的Class具有該特性,都應該宣告為protected。如果很肯定這個Method只是單純在Abstract Class自己的層級使用,可以直接宣告為private;如果該Method有可能會被Class覆寫但是現在沒有,應該宣告為protected final,已被任一個繼承Class覆寫過的Method則僅使用protected。(final的定義同樣適用在Interface Method的實作)另外,在Abstract Class還無法決定要如何實作的Method,應該都加上abstract的修飾讓它能夠立即被看出將會在繼承的下一層實作。

雖然在Eclipse裡有Ctrl+T的功能可檢查指定的方法被哪些Class所覆寫,但是那必須得一個一個方法去檢查。方法的修飾宣告與其亂定一通,倒不如應用一點技巧來讓所有人從Outline就能看出所有方法的大致結構,這不是相對地方便很多嗎?

沒有留言:

張貼留言