>백엔드 개발 >PHP 튜토리얼 >PHP 디자인 패턴(팩토리, 싱글톤)

PHP 디자인 패턴(팩토리, 싱글톤)

WBOY
WBOY원래의
2016-07-29 09:02:23930검색

디자인 패턴은 단순히 특정 유형의 문제를 처리하도록 설계된 솔루션을 설명합니다.


팩토리 패턴: 필요에 따라 해당 객체 생성

<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 ') .숨다(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 PHP의 디자인 패턴(팩토리, 싱글톤)을 내용적인 측면까지 포함하여 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.