2008年3月10日 星期一

M04 令人感到麻煩的設計(12)──不要使用Inner Class

在我的設計裡對於Inner Class也是禁用的,因為使用之後形成的是一種無可抽換的綁死關係;即使Inner Class實作了Interface也是一樣,因為就算使用時可以替換,但在實質上它是屬於這個Class裡的一部分。

另一個原因在於使用Inner Class後,無可避免地會在裡面直接使用Outer Class裡的屬性或方法,這時的Innter Class根本就是Outer Class的子集合而已。把Method從一個Class裡切割到兩個以上的Class是很痛苦的, 因為是把緊密相連的東西硬拉到兩個不同的個體裡……類似之前我誤把View與Controller寫成一個Class而必須拆開的痛苦,一有差錯就會失去原有的功能。

想像一下分割連體嬰時所花費的精力就能明白事先將該分開的物件切割是正確的,因此我完全不使用Inner Class的設計,而直接把Class獨立出來再於Method傳入需要操作的Class。

沒有留言:

張貼留言