クラス名
class NotificationService{
function sendNotification();
}
A「メッセージ送信クラスを作ったぞ」
A「送信機能しか持たせていないシンプル イズ ベスト」
A「名前はなんか思いつかなかったしサービスでいいや」
Slide 38
Slide 38 text
クラス名
class NotificationService{
function sendNotification();
}
B「通知サービスクラスか」 < この時点で認識が違う
B「通知テキストの管理もここでいいかな」
Slide 39
Slide 39 text
クラス名
class NotificationService{
function sendNotification();
function addNotificationText();
function removeNotificationText();
}
C「サービス!なんでもできる。いわゆるゴッド!!」
C「受け取り処理もここでいいっしょ」
Slide 40
Slide 40 text
クラス名
class NotificationService{
function sendNotification();
function addNotificationText();
function removeNotificationText();
function recieveNotification();
}
A「送信クラスだったのに・・・なんでメッセージ管理とか受信処理まで」
Slide 41
Slide 41 text
広く受ける名前
クラス名
受信機能
送信機能
テキスト
コンテナ
Slide 42
Slide 42 text
広く受ける名前
クラス名
受信機能
送信機能
テキスト
コンテナ
大は小を兼ねない
Slide 43
Slide 43 text
程よい名前
クラス名
受信機能
送信機能
テキスト
コンテナ
程よい名前に
いい感じの名前
Slide 44
Slide 44 text
クラス名
class NotificationSender{
function sendNotification();
}
A「メッセージ送信クラスはを作ったぞ」
A「送信機能しか持たせていないシンプル イズ ベスト」
A「今度は名前も明示的かつ限定的」
Slide 45
Slide 45 text
クラス名
class NotificationSender{
function sendNotification();
}
B「通知送信クラスか」
B「通知テキストをどこかにまとめたいんだけど、送信者はちょっとなー」
B「NotificationTextContainerとかつくるかー」
Slide 46
Slide 46 text
クラス名
class NotificationSender{
function sendNotification();
}
C「通知の受信処理つくろ!」
C「Senderにrecieve()とか、さすがに違うか」
C「素直にNotificationReceiverつくるか」