在面向?qū)ο笙到y(tǒng)中,對(duì)象間的相互作用是通過(guò)一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)送消息的方式來(lái)體現(xiàn)的。
在面向?qū)ο蟮某绦蛑校⒕褪菙?shù)據(jù)成員及成員方法的引用。
1 消息的概念
在面向?qū)ο蟮南到y(tǒng)中,把“請(qǐng)求”或“命令”抽象成“消息”,對(duì)象之間的聯(lián)系是通過(guò)消息傳遞來(lái)實(shí)現(xiàn)的。
當(dāng)系統(tǒng)中的其他對(duì)象請(qǐng)求這個(gè)對(duì)象執(zhí)行某個(gè)服務(wù)時(shí),它就響應(yīng)這個(gè)請(qǐng)求,完成指定的服務(wù)。
通常,我們把發(fā)送消息的對(duì)象稱為發(fā)送者,把接收消息的對(duì)象稱為接收者。
對(duì)象間的聯(lián)系,只能通過(guò)消息傳遞來(lái)進(jìn)行。
對(duì)象也只有在收到消息時(shí),才被激活,去完成消息要求的功能。
消息就是向?qū)ο蟀l(fā)出服務(wù)請(qǐng)求,是對(duì)數(shù)據(jù)成員和成員方法的引用。
它應(yīng)該含有下述信息:
提供服務(wù)的對(duì)象標(biāo)識(shí) - 對(duì)象名
服務(wù)標(biāo)識(shí) - 方法名
輸入信息 - 實(shí)際參數(shù)
回答信息 - 返回值或操作結(jié)果
消息具有三個(gè)性質(zhì):
同一對(duì)象可接收不同形式的多個(gè)消息,產(chǎn)生不同的響應(yīng)。
相同形式的消息可以發(fā)送給不同對(duì)象,所做出的響應(yīng)可以是截然不同的。
消息的發(fā)送可以不考慮具體的接收者,對(duì)象可以響應(yīng)消息,也可以對(duì)消息不予理會(huì),對(duì)消息的響應(yīng)并不是必須的。
2 公有消息和私有消息
在面向?qū)ο笙到y(tǒng)中,消息分為兩類:公有消息和私有消息。
當(dāng)有一批消息同屬于一個(gè)對(duì)象時(shí):由外界對(duì)象直接發(fā)送給這個(gè)對(duì)象的消息稱為公有消息;對(duì)象自己發(fā)送給本身的消息稱為私有消息。
私有消息對(duì)外是不開(kāi)放的,外界不必了解它。
外界對(duì)象只能向此對(duì)象發(fā)送公有消息,而不能發(fā)送私有消息,私有消息是由對(duì)象自身發(fā)送的。
3 特定于對(duì)象的消息
將所有能支持此對(duì)象可接收消息的方法集中在一起,形成一個(gè)大消息,成為特定于對(duì)象的消息。
這些消息讓對(duì)象執(zhí)行這個(gè)方法而不管它可能做什么及怎么做。
特定于對(duì)象的消息可分為三種類型:
可以返回對(duì)象內(nèi)部狀態(tài)的消息。
可以改變對(duì)象內(nèi)部狀態(tài)的消息。
可以做一些特定操作,改變系統(tǒng)狀態(tài)的消息。