>백엔드 개발 >PHP 튜토리얼 >PHP 팩토리 메소드의 두 가지 특별한 예

PHP 팩토리 메소드의 두 가지 특별한 예

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

팩토리 메소드는 단순히 클래스의 인스턴스를 생성하는 방법입니다.
팩토리 패턴은 가장 일반적으로 사용되는 인스턴스화 개체 패턴으로 새 작업을 대체하기 위해 팩토리 메서드를 사용하는 패턴입니다.
특별한 예는 다음과 같습니다.
우리는 지구인을 만들고 싶습니다. 지구상에는 남자와 여자 두 종류의 사람이 있습니다.

<code><span><span><?php</span><span>//实现工厂方法</span><span><span>interface</span><span>abstracted</span>{</span><span>public</span><span><span>function</span><span>realCreate</span><span>()</span>;</span>
}
<span>//女人类</span><span><span>class</span><span>Wuman</span>{</span><span>public</span><span><span>function</span><span>action</span><span>()</span>{</span><span>echo</span><span>"这是女人"</span>;
    }
}
<span>//男人类</span><span><span>class</span><span>Man</span>{</span><span>public</span><span><span>function</span><span>action</span><span>()</span>{</span><span>echo</span><span>"这是男人"</span>;
    }
}
<span>//创建女人</span><span><span>class</span><span>womanCreator</span><span>implements</span><span>abstracted</span>{</span><span>public</span><span>$chromosome</span>;<span>//染色体</span><span>public</span><span><span>function</span><span>realCreate</span><span>()</span>{</span><span>if</span>(<span>$this</span>->chromosome == <span>"xx"</span>){
            <span>return</span><span>new</span> Wuman();
        }
    }
}
<span>//创建男人</span><span><span>class</span><span>manCreator</span><span>implements</span><span>abstracted</span>{</span><span>public</span><span>$chromosome</span>;<span>//染色体</span><span>public</span><span><span>function</span><span>realCreate</span><span>()</span>{</span><span>if</span>(<span>$this</span>->chromosome == <span>"xy"</span>){
            <span>return</span><span>new</span> Man();
        }
    }
}
<span>//人类工厂</span><span><span>class</span><span>PersonFactory</span>{</span><span>public</span><span><span>function</span><span>create</span><span>(<span>$category</span>)</span>{</span><span>$method</span> = <span>"{$category}Creator"</span>;
        <span>return</span><span>$create</span> = <span>new</span><span>$method</span>();
    }
}
<span>$create</span> = <span>new</span> PersonFactory();<span>//创造人类</span><span>$instance</span> = <span>$create</span>->create(<span>'woman'</span>);<span>//创造女人</span><span>$instance</span>->chromosome = <span>"xx"</span>;<span>//女性染色体</span><span>$instance</span>->realCreate()->action();

<span>?></span></span></span></code>
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 관련 내용을 포함하여 PHP의 팩토리 메소드에 대한 두 가지 특별한 예를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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