一個(gè)很好解釋java的面向?qū)ο蠹靶畔㈦[藏的模型

字號(hào):

面向?qū)ο蠹夹g(shù)模型:假設(shè)我想送花給我遠(yuǎn)在外地的女友,由于distance太遠(yuǎn)的原因,我不可能親自送去給mm,雖然我很想。但是送她花還是一件相當(dāng)easy的事,我只要在本地的花店給他們描述我mm的詳細(xì)地址,花的品種,數(shù)量,何時(shí)送到等具體細(xì)節(jié)。就可以委托我mm在的那個(gè)城市的連鎖花店,把花送到我mm的手中。
    這和面向?qū)ο笥惺裁搓P(guān)系那,我來解釋。
    我門送花的過程可以分為一下幾種代理。(因?yàn)椴荒苡脠D形來表示,所以只能用鏈?zhǔn)降年P(guān)系表示)
    路徑1 :我-花店-送給mm的花。
    2 :mm所在城市的花店-送花人-送給mm的花
    3 :mm城市的花商-送給mm的花
    4:種植園-園?。l(fā)商-花商-送花人-送給mm的花
    我們都可以通過以上的4腫方法。達(dá)到我們的目的。但是我們不會(huì)去關(guān)心花商是怎么樣來具體實(shí)現(xiàn)的,花商可以打電話,或者傳真給mm所在城市花店的連鎖店,然后連鎖店,通過我的訂單的要求,通過種植圓,選到最新鮮的花,然后通過送花人,送到我mm的手里。 這個(gè)我們不去關(guān)心具體如何實(shí)現(xiàn)的過程就是信息隱藏我們只關(guān)心只要把花送到mm手里就行了,這就是隱藏實(shí)施。
    對(duì)于程序也和我送mm花這過程一樣。一個(gè)面向?qū)ο蟮某绦蚴怯梢粋€(gè)相互作用的代理團(tuán)體組成,也就是以上的花商,送花人,種植圓之類的。而這些就是對(duì)象。每個(gè)對(duì)象有他自己的角色,每個(gè)對(duì)象都提供一種服務(wù),一種動(dòng)作。
    類層次關(guān)系的頓悟:
    以上模型中的具體對(duì)象,例如花商,可分為本地的花商和mm所在城市的花商,但是他們都是花商,還有比如本地花商的老板,和mm所在城市的花商的老板。他們都是花商的老板,他們都是一個(gè)類。這里而老板的父類是人,人類的父類又是哺乳類動(dòng)物,而哺乳類動(dòng)物又屬于動(dòng)物,而動(dòng)物最終屬于我們的Object類。我們都是對(duì)象,阿貓阿狗也是對(duì)象。我你他都是面向?qū)ο蟮摹?BR>    類的繼承關(guān)系是:花店花童-花店老板-店主-人類-哺乳動(dòng)物-動(dòng)物-object
    從中可以發(fā)現(xiàn)我們繼承了從祖宗到目前個(gè)體的所有特性,比如動(dòng)物有object的屬性。他可能有4條腿,而哺乳類動(dòng)物又繼承了動(dòng)物的屬性,而又有自己的屬性,因?yàn)樗遣溉榈摹6死^承了哺乳類動(dòng)物的屬性,又有了自己的特性,說話,行走之類。店主也繼承了人的特性,而且他有自己的屬性,他有店主的權(quán)利,因?yàn)榈晔撬?,而老板那繼承了店主的某些屬性,比如權(quán)利,但是他還是店主的打工仔。而花童只有自己的屬性。但是也是繼承了最基本的object的屬性,這中一層一層的繼承屬性,我覺得很清楚的說明了Java類的繼承關(guān)系。
    以上就是我今天頓悟的東東,寫出來希望對(duì)大家能有些幫助。