ホームページ > バックエンド開発 > PHPチュートリアル > PHP 設計パターン (ファクトリ、シングルトン)

PHP 設計パターン (ファクトリ、シングルトン)

WBOY
リリース: 2016-07-29 09:02:23
オリジナル
918 人が閲覧しました

デザイン パターンは、特定の種類の問題に対処するために設計されたソリューションを単純に記述します


ファクトリ パターン: ニーズに応じて対応するオブジェクトを作成します

<code><span><span>class</span><span>factory</span>{</span><span><span>function</span><span>__construct</span><span>(<span>$name</span>)</span>{</span><span>if</span>(file_exists(<span>'./'</span>.<span>$name</span>.<span>'.class.php'</span>)){
            <span>return</span><span>new</span><span>$name</span>;
        }<span>else</span>{
            <span>die</span>(<span>'not exist'</span>);
        }
    }
}</code>
ログイン後にコピー

シングル ケース パターン: オブジェクトのインスタンスのみを作成し、それ以上のインスタンスは許可されません作成され、リソースが保存されます (データベース接続など)

<code><span><span>class</span><span>instance</span>{</span><span>public</span><span>$val</span> = <span>10</span>;
    <span>private</span><span>static</span><span>$instance</span> ;
    <span>private</span><span><span>function</span><span>__construct</span><span>()</span>{</span>}
    <span>private</span><span><span>function</span><span>__clone</span><span>()</span>{</span>}
    <span>//设置为静态方法才可被类调用</span><span>public</span><span>static</span><span><span>function</span><span>getInstance</span><span>()</span>{</span><span>/*if(!isset(self::$instance)){
            self::$instance = new self;
        }*/</span><span>if</span>(!<span>isset</span>(instance::<span>$instance</span>)){
            instance::<span>$instance</span> = <span>new</span><span>self</span>;
        }
        <span>return</span> instance::<span>$instance</span>;
    }
}

<span>$obj_one</span> = instance::getInstance();
<span>$obj_one</span>->val = <span>20</span>;
<span>//clone可以调用__clone()克隆即new出一个新的的对象</span><span>//$obj_two = clone $obj_one;</span><span>$obj_two</span> = instance::getInstance();
<span>echo</span><span>$obj_two</span>->val;
<span>echo</span><span>'<p>'</p></span>;
var_dump(<span>$obj_one</span>,<span>$obj_two</span>);</code>
ログイン後にコピー

PHP 設計パターン (ファクトリ、シングルトン)

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上、PHPのデザインパターン(ファクトリー、シングルトン)を内容も含めて紹介しましたので、PHPチュートリアルに興味のある方の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート