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