<table cellspacing="0" cellpadding="0"><tr><td class="t_f" id="postmessage_23790"> 工場出荷時のパターン <br> 単一要素モード <br> オブザーバーモード <br> コマンドチェーンモード <br>戦略モード <div class="blockcode"> <div id="code_lc4"><ol> <li>class people {</li> <li> private $name = '';</li> <li> private $user = null;</li> <li> <li> private function __contract($name){/*ここでのプライベート定義は、単一要素モードの実装を支援します*/</li> <li> $ this-> ;name = $name;</li> <li> }</li> <li> <li> public static function instance($name){/*このメソッドはファクトリ モードを実装します*/</li> <li> static $object = null;/*この変数は単一要素モードを実装します*/</li> <li> if (is_null( $object))</li> <li> $object = new people($name);</li> <li> return $object;</li> <li> }</li> <li> <li> public function work_in($who=null)</li> <li> {</li> <li> if (is_null($who)) echo 'error ';</li> <li> else {</li> <li> $this->user[] = $who;/*この配列変数はオブザーバー パターンを実装します*/</li> <li> echo $who->work();/*このメソッド呼び出しは戦略パターンを実装します* /</li> <li> }</li> <li> }</li> <li> <li> public function on_action($that=''){</li> <li> if (empty($that)) echo 'error';</li> <li> else {</li> <li> foreach ($this->user as $user)</li> <li> $ user-> action($that);/*このメソッドはコマンド チェーン モードを実装するために呼び出します*/</li> <li> }</li> <li> }</li> <li>}</li> <li> <li>$people = people::instance('jack');</li> <li>$people-> work_in(新入生); </li> <li>$people->work_in(新任教師);</li> <li>$people->on_action('eat');</li> <li> <li>クラスの生徒 {</li> <li> function work(){</li> <li> echo '<br/> ; 私は学生で、9時から5時に向かっています。 ';<li> }<li><li> function action($this){<li> if (method_exists($this, $that)) return $this->$that();</li> <li> else echo 'あなたは間違っています!';</li> <li> }</li> <li> <li> function Eat(){</li> <li> echo '<br/>私は学生なので定食しか食べられません。 ';</li> <li> }</li> <li>}</li> <li> <li>クラスの先生 {</li> <li> function work(){</li> <li> echo '<br/>私は教師で、夕方はレッスンの準備で一番忙しいです。 ';</li> <li> }</li> <li> <li> function action($that){</li> <li> if (method_exists($this, $that)) return $this->$that();</li> <li> else echo 'それはできません!';</li> <li> } </li> <li> <li> function Eat(){</li> <li> echo '<br/>私は教師なので、毎日たくさんの食事を食べることができます。 ';</li> <li> }</li> <li>}</li> </ol></div> <em onclick="copycode($('code_lc4'));">コードをコピー</em> </div> </td></tr></table> <div id="comment_23790" class="cm"> </div> <div id="post_rate_div_23790"></div> <br><br>