类设计技巧
一定要保證數(shù)據(jù)私有
數(shù)據(jù)私有時(shí)不影響類的使用者;發(fā)生了BUG也易于追蹤調(diào)試。
一定要對(duì)數(shù)據(jù)進(jìn)行初始化
實(shí)例化對(duì)象時(shí)盡管有默認(rèn)值,但是我們還是要對(duì)數(shù)據(jù)進(jìn)行顯式初始化。可以在定義時(shí)進(jìn)行默認(rèn)值初始化,也可以在所有構(gòu)造器中進(jìn)行初始化。
不要在類中使用過多的基本數(shù)據(jù)類型
用一個(gè)類代替多個(gè)相關(guān)的基本類型,更易于理解和擴(kuò)展。例如類中有以下幾個(gè)基本類型:城市、街道、門牌、郵編,都是和地址相關(guān)的,我們可以用一個(gè)“地址”類代替。這樣易于理解,也便于以后地址的擴(kuò)展和修改。例如處理一個(gè)國(guó)際化地址。
不是所有的域都需要域訪問器和修改器。
有些域是實(shí)例化后禁止更改的,例如員工入職后,入職時(shí)間是禁止更改的。有些域不希望用戶看到,例如部門ID。
將職責(zé)過多的類進(jìn)行分解
如果明顯可以將一個(gè)類拆分為兩個(gè)更為簡(jiǎn)單的類,那就進(jìn)行拆分。
類名和方法名要能體現(xiàn)它們的職責(zé)
類名的良好習(xí)慣是采用一個(gè)名詞(Order)、前面有形容詞修飾的名詞(RushOrder)、或動(dòng)名詞(有“ -ing” 后綴)修飾名詞(例如, BillingAddress )。
對(duì)于方法來說,習(xí)慣在訪問器前面加get,在更改器前面加set。
優(yōu)先使用不可變的類。
有的類調(diào)用其方法更改,會(huì)返回一個(gè)新的對(duì)象,就是不可變的類。例如java中LocalDate。而有些類的方法可以修改其內(nèi)部數(shù)據(jù),這樣的類就是可變的。
如果類對(duì)象是可變的,在進(jìn)行多線程變成的時(shí)候,多個(gè)線程同時(shí)訪問一個(gè)對(duì)象,則會(huì)出現(xiàn)不可控的情況。
轉(zhuǎn)載于:https://www.cnblogs.com/limp/p/9054881.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
- 上一篇: 为啥腾讯元宝要进行安全漏洞扫描?
- 下一篇: 数据结构50:二分查找法(折半查找法)