我們不應(yīng)該盲目的創(chuàng)建屬性,而是只是再需要從其他的代碼調(diào)用這個(gè)屬性時(shí)才創(chuàng)建它。這個(gè)策略有幾個(gè)作用。首先,不會(huì)有不需要的代碼。開發(fā)者很多時(shí)候都會(huì)創(chuàng)建太多預(yù)期性的代碼,因?yàn)樗麄冊(cè)谙耄?#8220;反正我以后肯定需要這個(gè),倒不如先在就做了吧”如果你是用工具來自動(dòng)穿件屬性,就算在你需要這個(gè)屬性之后才穿件,也不會(huì)讓你格外費(fèi)勁。
其次,可以避免讓代碼有不必要的臃腫。屬性在代碼里面所占的空間很多,這些自動(dòng)生成的代碼會(huì)減慢你閱讀代碼的速度。
最后,不要擔(dān)心要為這些屬性寫測(cè)試。因?yàn)樗械膶傩远荚谡嬲褂眠@些屬性的地方被調(diào)用了,所以它們會(huì)自然而然地被其他的測(cè)試覆蓋
我永遠(yuǎn)都不會(huì)用測(cè)試驅(qū)動(dòng)開發(fā)屬性,我只會(huì)在需要時(shí)才生成他。。。
靜態(tài)性和狀態(tài)的邪惡混合常常發(fā)生在Singleton模式中。。。
唉,我算是對(duì)Singleton模式比較熟悉了,Guard系統(tǒng)整個(gè)系統(tǒng)的設(shè)計(jì)都是基于Singleton模式來實(shí)現(xiàn)的。。。真的是很邪惡。。自從徐師兄走了之后,Guard版本的管理貌似就陷入混亂了。。也不管什么CVS了。。也不管什么OO了。。。什么模式之類的都 搞到一起去了。。不過。。不得不說。Guard寫的真的是非常漂亮。。很多代碼都是規(guī)范性的。。!!
如果OO,那么就OO到底。。如果非OO,那么一開始就別東搞一點(diǎn),西搞一點(diǎn)。。弄的什么都不是。。很難過啊。。