2008年5月1日 星期四

O11 動態的應用(1)──Class與Constructor

不管是Class的生成或是方法的呼叫都儘量使用映射的機制。這樣做的好處在於可以把字串動態地變成指定的Object或執行Obejct的特定Method,不必像初學者般運用大量的if-else判斷才能定位到應該要執行的程式。

當所有物件的規格都有定義Interface時,我們就可以在使用該物件的地方定義使用Interface。當這個Interface只擁有一個實作Class時可以直接new出來使用;但實作的Class種類變多時,就能夠依狀態的不同取得不同的Class Name再使用Class.forName(className).newInstance()拿到指定實作類型的物件。

生成物件時如果需要傳入參數,則需要取得Class的Constructor,取得時需要傳入Constructor所需的參數類型陣列;呼叫時也要將傳入的參數依序放在陣列裡,然後就可以取得指定的物件。一般來說會把Class Name加上id放置在設定檔裡,依不同狀況取用不同id的設定,如果需要傳入參數的話,則將相關設定放在同一組id下。

記得物件範圍的切割度會影響作法,物件範圍涵蓋得越大則越可能得準得許多應付不同需求的Class,但是如果切割得過小也會造成花費時間過多。這一直都是個值得深思的問題。

沒有留言:

張貼留言