英語で「状態」を意味する単語です。オブジェクト指向設計では、モノをクラスとして表現することが多くあります。モノではなく、「状態」をクラスとして表現するパターンです。状態によって、動作のパターンが変わることがよくあります。「機嫌のいい状態」「機嫌が悪い状態」の2つの状態があるお母さんにいくつか頼みごとをすることを考えます。「はいはい」といってお小遣いをくれたり、おやつを出してくれたりするでしょう。機嫌の悪い状態のお母さんにこれらのお願いをしても聞き入れてくれないかもしれません。お母さんは状態によって、振る舞いが変わるわけです。パターンとは、このような、状態の変化に応じて振る舞いが変わるような場合に威力を発揮するパターンです。サンプルケースサンプルケースでは、あなたのクラスの女番長由実ちゃんに注目してみましょう。由実ちゃんは男勝りで、いつも活発に活動しています。つっけんどんな会話をすることがありますが、とってもいい子です。そんな由実ちゃんですが、恋をするととたんに女らしくなり、びっくりするほどおしとやかになります。恋が終わるとまた男勝りになるのです。以下は、普段の由実ちゃんと、親友のみっこちゃんの会話を記録したものです。活発な女の子らしいですね。次に機嫌の悪い状態の由実ちゃんと、みっこちゃんの会話を見てみましょう。寒いし、ももひき履いてきたわ。うーん、まるでおっさんですね。みっこちゃんからの問いかけに答えることができるように由実ちゃんクラスを実装してみましょう。}}さて、状態に応じて様々な返事を返す由実ちゃんクラスができました。そんなある日、由実ちゃんは、同じクラスの松崎君に恋をしてしまいました。みっこちゃんも初めてみたのですが、由実ちゃんは恋をすると、すっかり女の子らしくなるのでした。恋に落ちた由実ちゃんと、先ほどの会話をしてみましょう。寒いね、今日はピンクの毛糸パンツをはいてきたわ。女の子らしくなりました。由実ちゃんクラスに手を入れて状態を追加しましょう。文を見直さなくてはならないことに。文の分岐を見直さなければならないような設計はあまり好ましいものではありません。パターンを利用するとうまくいきます。パターンでは、「状態」を表すクラスを用意し、この「状態」を入れ替え可能にしておきます。サンプルケースであれば、まずは、「ご機嫌斜め状態」「普通の状態」が必要となります。変更は、どのクラスが行っても良いのですが、今回のケースでは、内部のどこかから変更されるものとしてみます。ソースコードを見てみましょう。機嫌の悪いときは、ぶっきらぼうに応えます。機嫌の悪いときはももひきをはきます。通常は、男らしく応えます。