很明顯地在這個例子裡放置Abstract Class會是個好解法。(圖3)這種方式讓我們能夠把相同的13個方法放置到Abstract Class,再個別在Class裡分開實作那7個不同的方法;基於覆寫後可能的失控,能夠設計為沒有覆寫方式的話我都會採用該種作法。

常聽到Class是特性的定義、Object是Class實體的說法,不過在我自己的設計裡會調適為:Abstract Class是特性的定義、Object是Class的實體、Class只是為建立Object的需要而存在。儘量把共用的動作方法建立在Abstract Class裡,Class裡要放的只有該Class特殊化的方法,這時再看前一篇就能夠現在發現完全沒有繼承Class的必要,因為所有需要的動作全都在Abstract Class中!
這裡都是我自己所用的設計,會這麼做是因為能夠避免我所遇過的一些問題,但還是可以保有設計的功能性。
沒有留言:
張貼留言