2010-05-07 67 views
0

我試圖命名一個字符是收到由對象運行的函數。函數命名:sendCharacter或receiveCharacter?

對於調用者,它應該被命名爲sendCharacter,以便它可以調用:

object->sendCharacter(character) ; 

這看起來不錯呼叫者..但對於接收器,它實現的方法

/// Called when this object is do something 
/// with a character 
/// from the caller 
void sendCharacter(char c) ; 

所以對於收件人類,它看起來像這個方法實際上是發送一個字符出來,沒有收到一個。

那麼,我可以調用函數receiveCharacter

/// Called when this object is do something 
/// with a character 
/// from the caller 
void receiveCharacter(char c) ; 

但現在來電做到這一點:

object->receiveCharacter(character) ; 

剛剛看起來很奇怪。

我怎樣才能更好地命名這個功能?

回答

1

void processCharacter(char c) {...}

我很高興看到別人誰而感到憂心忡忡方法名。我花了太多時間做這件事;)

+0

我喜歡這個名字的「雙重性」 - 它確實對呼叫者和接收者都有意義 – bobobobo 2010-05-07 19:29:23

4

也許這只是您選擇的示例,但sendCharacterreceiveCharacter都沒有意義。 爲什麼是你發送一個字符給對象?

一個更好的選擇是挑選一些指示爲什麼字符正在發送 - - 例如,appendCharacter

選擇特定的「追加」示例:C#和Java都有一個StringBuilder,它有一個Append(string)方法。當然,你發送字符串到StringBuilder的實例,而StringBuilder收到的字符串,但這不是重點。重點是該字符串被附加到其內部緩衝區/數組/實現細節。

+0

這是一個有趣的角度! – bobobobo 2010-05-07 19:28:27

1

如果人品反應事件的方法,那麼怎麼樣

void onCharacter(char c);