Heim > Artikel > Backend-Entwicklung > Entwurfsmuster in PHP: Fabrikmuster
Das Fabrikmuster wird normalerweise verwendet, um verschiedene Klassen zurückzugeben, die Schnittstellen ähneln. Eine häufige Verwendung von Fabriken besteht darin, polymorphe Anbieter zu erstellen.
Normalerweise verfügt das Factory-Muster über ein Schlüsselkonstrukt, bei dem es sich um eine statische Methode handelt, die normalerweise Factory genannt wird. Diese statische Methode kann beliebig viele Parameter akzeptieren und muss ein Objekt zurückgeben.
<spanmicrosoft yahei><span>interface</span><span> IDatabase { //...</span><span>public</span> <span>function</span> query(<span>$sql</span><span>);</span><span> } </span><span>class</span><span> DBFactory { </span><span>public</span> <span>static</span> <span>function</span> create(<span>$type</span><span>){ </span><span>$db</span> = <span>null</span><span>; </span><span>switch</span> (<span>$type</span><span>) { </span><span>case</span> 'mysql': <span>$db</span> = <span>new</span> <span>Mysql</span>(<span>/*</span><span>*arguments</span><span>*/</span><span>); </span><span>break</span><span>; </span><span>case</span> 'sqlite': <span>$db</span> = <span>new</span> Sqlite(<span>/*</span><span>*arguments</span><span>*/</span><span>); </span><span>break</span><span>; </span><span>case</span> 'pgsql': <span>$db</span> = <span>new</span> PGsql(<span>/*</span><span>*arguments</span><span>*/</span><span>); </span><span>break</span><span>; </span><span>default</span>: <span>#</span><span> code...</span> <span>break</span><span>; } </span><span>return</span> <span>$db</span><span>; } } </span><span>class</span> <span>Mysql</span> <span>implements</span><span> IDatabase { </span><span>//... </span><span>public</span> <span>function</span> query(<span>$sql</span><span>){ }</span><span> } </span><span>/*</span><span>*other class ...</span><span>*/</span></spanmicrosoft>
<spanmicrosoft yahei><span>$db</span> = DBFactory::create('mysql'<span>); </span><span>$db</span>->query('show database');</spanmicrosoft>
Das Obige stellt die Entwurfsmuster in PHP vor: Factory-Muster, einschließlich des Inhalts des PHP-Factory-Musters. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.