ある場合に利用すると威力を発揮するパターンです。それぞれの車が、めいめい判断し、行けると思ったら進む。信号の故障をうまく乗り切ることができるでしょうか?おそらく無理でしょう。皆が一生懸命周囲の状況を確認しても、全員が同じ認識にいたるはずがありません。そこで、仲裁人である「交通巡査」の登場です。「進め」や「止まれ」の指示を出します。全ての車は、交通巡査の指示通りに進んだり止まったりするわけです。判断を行い指示を出す「仲裁人」の役割を果たすクラスを利用するパターンです。サンプルケースサンプルケースでは、あなたのクラスの恋愛相談を一手に引き受けている、斉藤君に注目してみましょう。斉藤君は顔が広く、みんなから恋愛相談を持ち込まれることが多いようです。さまざまな恋愛相談を受け、周囲の状況をよく把握していることもあり、いつも的確にアドバイスをくれます。おれ、玲奈ちゃんに惚れちゃったんだよね。(でも、玲奈ちゃんは、いまラブラブらしいな)うーん、残念ながら、今はたぶん無理だね。残念だけど、今はあきらめるよ。わかった、また何かあったらよろしく。新田君も相談があるようです。おれ、中井ちゃんに惚れたかもしれん。(中井ちゃんかぁ・・・新田君ってけっこう薄い顔が好きなんだな。)中井ちゃんなら、うまくいけばうまくいくかも。中井ちゃんにそれとなく聞いてみるわ。がんばってみよっかな。「水島、惚れたならまっすぐ進むのが男の道だ!」なんて思わずに続けましょう。斉藤君自身も、みんなの恋愛状況をよく把握しています。斉藤君の友達は、恋愛に行き詰ると斉藤君に相談に来ます。斉藤君は相談を受けると、適切なアドバイスを与えたり、時によってはいろいろな調整をしてくれるかもしれません。上の会話の中で、水島君が「玲奈ちゃん」「和香ちゃん」「由実ちゃん」に興味を持っているという情報を得ています。太郎君にとっても、和香ちゃんにとっても幸せな結末が待っていることは間違いないですよね。クラス図にすると以下のようになるでしょうか。斉藤君からの調整を受けて何かの行動を起こしたりするわけです。それぞれを実装する形で、実際の調整役や相談者を表すクラスを作成します。サンプルケースをもう少し整理すると、以下の図のようになります。クラスを例にサンプルコードを書いてみましょう。}もし、斉藤君がいなかったら、水島君は、たくさんの女の子に声をかける必要がありますし、たくさんの人の情報を把握しておく必要もあります。水島君の気が変わって別の女の子を好きになったときには、声をかけたたくさんの女の子に「いやぁ、実はね別の女の子のことを好きになっちゃって・・・。なんて話をしなくてはなりません。逆に、以前は好意をもたれていたんだけど、今はなんとも思われていない女の子に、「俺も君の事が好きに・・・。なんて不幸な告白をすることもありえます。全体の状況を管理することが非常に楽になります。パターンは、入力インタフェースなどに利用することができるでしょう。パターンを思い出すべきですね。チェックがはずされたときなども検証する必要があるプログラムになります。条件が複雑になるにつれ、どこで何をチェックしているのか管理できなくなってくるでしょう。伝えるような設計になり、管理が比較的楽になります。パターンの一般的なクラス図は、以下のようになります。Textを触ってみた。