? 在類的設(shè)計(jì)中,對(duì)成員變量的封裝是一個(gè)比較煩人的問題.什么時(shí)候應(yīng)該提供讀寫的接口,什么時(shí)候應(yīng)該聲明為public,這樣的問題有時(shí)候改幾次也都不是很滿意的.
? 將對(duì)變量的讀寫操作封裝起來以接口的形式提供,是有了一定的接口一致性.如果以后要在讀寫變量的操作內(nèi)加入其它的操作,那么原有的代碼就可以不加任何修改,只改這樣的接口就行了.也就是對(duì)外部封閉了細(xì)節(jié),使編程簡(jiǎn)單一點(diǎn).
但我也覺得不能用"一刀切"的方式將所有的成員變量都加以這樣的封裝,這樣無(wú)疑會(huì)使代碼增長(zhǎng)(而且可能還有我所不知道的缺點(diǎn)).
總的來說,
? 對(duì)于要對(duì)外部提供應(yīng)用的變量,最好以接口的形式提供.這樣可以有比較一致的接口.
? 而如果只是內(nèi)部使用的話,且只是用于保存變量的值的話,直接聲明為public會(huì)好一些.而若在內(nèi)部也是相對(duì)地為其它類提供服務(wù)的話,也還是要聲明為接口要好一些.
這里所說的內(nèi)部和外部,只是相對(duì)來說的,并不只是針對(duì)某個(gè)類或程序而言.具體來說要根據(jù)代碼的聚合程序來看.
最主要的原則還是要對(duì)具體的情況還要加以區(qū)別對(duì)待,根據(jù)實(shí)際情況不同而施以不同的應(yīng)用.
===========
這樣的問題主要還是靠編碼經(jīng)驗(yàn)的,如果有經(jīng)驗(yàn)的話,可能憑感覺就可以隨時(shí)決定的.
對(duì)于這個(gè)問題我也只是有這一點(diǎn)的初步見解(我?guī)缀鯖]有什么實(shí)際的編碼經(jīng)驗(yàn)),也不知道合不合適,希望有牛人可以加以指導(dǎo).