#
? 在類的設(shè)計(jì)中,對(duì)成員變量的封裝是一個(gè)比較煩人的問(wèn)題.什么時(shí)候應(yīng)該提供讀寫的接口,什么時(shí)候應(yīng)該聲明為public,這樣的問(wèn)題有時(shí)候改幾次也都不是很滿意的.
? 將對(duì)變量的讀寫操作封裝起來(lái)以接口的形式提供,是有了一定的接口一致性.如果以后要在讀寫變量的操作內(nèi)加入其它的操作,那么原有的代碼就可以不加任何修改,只改這樣的接口就行了.也就是對(duì)外部封閉了細(xì)節(jié),使編程簡(jiǎn)單一點(diǎn).
但我也覺(jué)得不能用"一刀切"的方式將所有的成員變量都加以這樣的封裝,這樣無(wú)疑會(huì)使代碼增長(zhǎng)(而且可能還有我所不知道的缺點(diǎn)).
總的來(lái)說(shuō),
? 對(duì)于要對(duì)外部提供應(yīng)用的變量,最好以接口的形式提供.這樣可以有比較一致的接口.
? 而如果只是內(nèi)部使用的話,且只是用于保存變量的值的話,直接聲明為public會(huì)好一些.而若在內(nèi)部也是相對(duì)地為其它類提供服務(wù)的話,也還是要聲明為接口要好一些.
這里所說(shuō)的內(nèi)部和外部,只是相對(duì)來(lái)說(shuō)的,并不只是針對(duì)某個(gè)類或程序而言.具體來(lái)說(shuō)要根據(jù)代碼的聚合程序來(lái)看.
最主要的原則還是要對(duì)具體的情況還要加以區(qū)別對(duì)待,根據(jù)實(shí)際情況不同而施以不同的應(yīng)用.
===========
這樣的問(wèn)題主要還是靠編碼經(jīng)驗(yàn)的,如果有經(jīng)驗(yàn)的話,可能憑感覺(jué)就可以隨時(shí)決定的.
對(duì)于這個(gè)問(wèn)題我也只是有這一點(diǎn)的初步見解(我?guī)缀鯖](méi)有什么實(shí)際的編碼經(jīng)驗(yàn)),也不知道合不合適,希望有牛人可以加以指導(dǎo).
大家都知道現(xiàn)在C/C++的編譯是分為兩個(gè)部分的,即編譯和連接:源文件經(jīng)編譯后生成目標(biāo)文件,然后再連接為可執(zhí)行文件.
我對(duì)這兩個(gè)階段要做的工作還沒(méi)有了解,所以我現(xiàn)在可以這樣設(shè)想(也有可能是無(wú)知的設(shè)想):
以一種標(biāo)準(zhǔn)的方式定義目標(biāo)文件的格式,使之在各操作系統(tǒng)上生成的目標(biāo)文件完全一致,而且都可以在相應(yīng)的平臺(tái)上進(jìn)行正確的連接.這樣的話,就相當(dāng)于是一個(gè)中間層次的可移植性了.其實(shí),如果這樣不行的話也可以像JAVA那樣生成一定格式的"字節(jié)碼"文件,然后再進(jìn)行編譯連接.
如果可以將連接的一部分功能結(jié)合到操作系統(tǒng)內(nèi)部,實(shí)現(xiàn)動(dòng)態(tài)的連接,這樣就可以實(shí)現(xiàn)類似動(dòng)態(tài)裝載的特性了.
但這個(gè)要實(shí)現(xiàn)的話就需要有一個(gè)大的投資方或者開源社區(qū)自己的共同努力才能實(shí)現(xiàn)了.
所以現(xiàn)在這樣的想法還是空想吧.
不過(guò)我想,事物都是發(fā)展的,我們的C++當(dāng)然也不會(huì)例外的.我相信C++會(huì)在不久也實(shí)現(xiàn)動(dòng)態(tài)及完全的跨平臺(tái)的特性的.希望這一天不會(huì)太遠(yuǎn)!
可以參加這樣的會(huì)議真的是很難得啊,我很慶幸會(huì)有這樣的機(jī)會(huì),雖然我只是在成都分會(huì)場(chǎng).這次我參加并不是對(duì)Java有太大的興趣(我的興趣肯定是在C++上的呵),而只是想了解一下相關(guān)的技術(shù)及前沿動(dòng)態(tài).而且,這次也有不少的體會(huì),之后會(huì)陸續(xù)寫出來(lái)的.
現(xiàn)在園子多了,但進(jìn)入不同的園子還得要不同的鑰匙,真是麻煩哪.
既然都是一家子人,何不共用同一把鑰匙呢?
不知道可不可以實(shí)現(xiàn)啊.現(xiàn)在在各個(gè)園子里互相切換,還真是有點(diǎn)煩啊.
最好是將相同的帳號(hào)整合為一個(gè)帳號(hào),新申請(qǐng)的可以選擇激活某個(gè)博客來(lái)操作,這樣管理也應(yīng)該會(huì)方便一些吧.
希望以后會(huì)有這樣的改進(jìn)!
好不容易申請(qǐng)了一個(gè)Gmail,可沒(méi)有可發(fā)的邀請(qǐng)函.其他的人都是一申請(qǐng)就有的啊.
看了一下幫助說(shuō)明,說(shuō)邀請(qǐng)函是隨機(jī)分配的,但分配到我頭上的機(jī)會(huì)有多大呢?
難道還要我把現(xiàn)有賬戶注消再重新申請(qǐng)不成?
又一周無(wú)聊的過(guò)去了,真是,什么時(shí)候才能好好的生活呢.
玩,玩,玩,只知道玩......
唉...............
慚愧哪......
教師節(jié)到了,我在此向所有的辛苦工作的教師們道一聲:
老師,你們辛苦了!
向全體教師致敬!
各位在校或已離校的朋友們,請(qǐng)抽出點(diǎn)時(shí)間,向你們的老師發(fā)出你最真誠(chéng)的問(wèn)候吧!
都建起來(lái)幾天了,可現(xiàn)在注冊(cè)的人還不多啊.
大家都幫著宣傳一下,讓其它園子里的人以及其它的C++愛(ài)好者都湊到這里來(lái)啊!
各位熱愛(ài)C++的朋友們,行動(dòng)起來(lái)!
PS: 建議dudu也在各個(gè)園子里公告一下,把大家召集起來(lái).
終于有了C++自己的博客了!
以前與大家交流不夠多,不過(guò)以后我一定要多參與,把自己的心得體會(huì)都寫下來(lái)與大家分享!
我鐘情于C++,也深深的喜愛(ài)著它,而我卻又沒(méi)有那么高的水平能靈活的運(yùn)用它.但我卻確實(shí)想寫點(diǎn)什么,至少也是有實(shí)際意義的程序,而不只是單純?yōu)榱藢W(xué)習(xí)而作的程序.這樣的思想讓我到現(xiàn)在也還沒(méi)能在C++方面有任何更多的提高.
而現(xiàn)在的Java,它簡(jiǎn)化了設(shè)計(jì),但是卻增加了學(xué)習(xí)量,面對(duì)眾多繁復(fù)的條目,要不停的去學(xué),而我自己又不想只是簡(jiǎn)單的拿來(lái)用,而是想弄明白它是如何實(shí)現(xiàn)的,從而自己實(shí)現(xiàn)一個(gè)類似功能的組件.
按理說(shuō),這樣的想法應(yīng)該是不錯(cuò)的.但對(duì)于我來(lái)說(shuō),卻是一項(xiàng)負(fù)擔(dān).我常常沒(méi)有完全明白它是怎么回事就去摸索著實(shí)現(xiàn)(有時(shí)我也是有意如此,怕自己完全明白后思想受到束縛);而僅僅開了一個(gè)小小的頭,就又可能轉(zhuǎn)向其它的東西.
我常常在C++與Java之間徘徊,不知道自己該用什么.也不知道自己適合做什么,縱使我很熱愛(ài)編程.
好煩哪......
路過(guò)的朋友,能否將我從迷團(tuán)中解放出來(lái)呢?
可冰 2005-08-15 21:13
文章來(lái)源:http://kb.cnblogs.com/archive/2005/08/15/215605.html