挨拶の問題をみた。

https://codeiq.jp/magazine/2013/11/1475/
を読んだ。

引数は好き。 GOOS目線だと, JMock を使って、(抽象度の低い「時間」自体をモックするじゃなくて(GOOSでは、基本ライブラリーをモック・スタブで差し替えることに否定的。))

「挨拶」と同じ抽象度/ドメイン目線に合わせて、時間をもう一段抽象度を上げて「朝/昼/夜」を判定するロール(名前はわからん!) 発見し、責務を分配しコラボレーションしてやりたいことを実現するのじゃー。これがメッセージ/ロールを中心に捉えるOO設計だーとか言いそう。
「朝/昼/夜」の概念が変われば、修正箇所は、新しく発見したロールで対処する。

実業務だと、たぶんやんないけど。 時間を差し替えて stub や timecop で済ませるんじゃなかろうか。
朝昼夜の判断・判定が複数箇所で出ると分かってからDRY原則で抽出するんじゃなかろうか。


    • -

朝の場合、「おはようございます」
昼の場合、「こんにちは」
夜の場合、「こんばんは」

    • -

が実ゴードレベルで出てほしい気分。

一般の時間の概念レベルじゃなくて、ドメインレベルの時間の概念に抽象度を上げてをつくったことはないなぁ

参加すれば良かった。