三種違反面向?qū)ο箫L(fēng)格的典型代碼設(shè)計
- 濫用setter, getter方法
在設(shè)計實現(xiàn)類的時候, 除非真的需要,否則盡量不要給屬性定義setter方法,除此之外, 盡管getter方法相對setter方法要安全寫,但是如果返回的是集合容器對象,那也要防范集合內(nèi)部數(shù)據(jù)被修改的風(fēng)險
(OC 默認(rèn)添加屬性自帶setter getter .....攤手, 只能通過相關(guān)的關(guān)鍵字去控制訪問權(quán)限 ) - Constans類, Utils類的設(shè)計問題
對于這兩種類的設(shè)計,我們盡量能做到單一職責(zé), 定義一些相對更細(xì)化的小類, 比如 RedisConstans, FileUtils, 而不是定義一個大而全的 Constans類 Utils類, 除此之外, 如果能將這些類中的屬性和方法, 劃分歸并到其他業(yè)務(wù)類中, 那是最好不過的了, 能極大地提高類的內(nèi)聚性和代碼的可復(fù)用性. - 基于貧血模型的開發(fā)模式
關(guān)于這一部分,我們只講了為什么這種開發(fā)模式是徹徹底底的面向過程編程風(fēng)格, 這是因為數(shù)據(jù)和操作是分開定義在VO\BO\Entity和 Controller\ Server \ Respository中的, 至于為什么這種開發(fā)模式如此流行? 如何規(guī)避面向過程編程的弊端? 有沒有更好地可替代的開發(fā)模式? 更多箱規(guī)按的問題, 本章節(jié)只需要知道有這么個東西就可以了(作者說的 哈哈),