ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの 5 つの設計パターンを 3 つのクラスにまとめます

PHP_PHP チュートリアルの 5 つの設計パターンを 3 つのクラスにまとめます

WBOY
WBOYオリジナル
2016-07-21 15:16:53807ブラウズ

ファクトリーモード
シングルエレメントモード
オブザーバーモード
コマンドチェーンモード
ストラテジーモード

コードをコピーします コードは次のとおりです。

class people {
private $name = ''; null;
private function __contract($name){/*ここでのプライベート定義は、単一要素モードの実装に役立ちます*/
$this->name = $name;
public static function instance($name); *このメソッドはファクトリーモードを実装します*/
static $object = null;/*この変数は単一要素モードを実装します*/
if (is_null($object))
$object = new people($name); ;
}
public function work_in($who=null)
{
if (is_null($who)) echo 'error';
else {
$this->user[] = $who;/*この配列変数オブザーバー パターンを実装します*/
echo $who->work();/*このメソッドは実装戦略パターンを呼び出します*/
}
}
public function on_action($that=''){
if (empty($ what)) echo 'error' ;
else {
foreach ($this->user as $user)
$user->action($that);/*このメソッド呼び出しはコマンド チェーン モードを実装します*/
}
}
}
$people = people::instance('jack');
$people->work_in(新入生);
$people->on_action( 'eat');
class students {
function work(){
echo '
私は学生で、9時から5時まで働いています。 ';
}
関数 action($this){
if (method_exists($this, $that)) return $this->$that();
else echo 'あなたは間違っています!'
} (){
echo '
私は学生なので定食しか食べられません。 ';
}
}
class Teacher {
function work(){
echo '
私は教師で、夜は授業の準備で一番忙しいです。 ';
}
function action($this){
if (method_exists($this, $that)) return $this->$that();
else echo 'それはできません!'
function Eat(){
echo '
私は教師なので、毎日たくさんの食事を食べることができます。 ';
}
}





http://www.bkjia.com/PHPjc/325853.html
www.bkjia.com

tru​​e

技術記事ファクトリ モード シングル エレメント モード コマンド チェーン モード ストラテジー モード コードをコピーする コードは次のとおりです。 class people { private $name = ''; private function __cons...;
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。