Detaillierte Erläuterung gängiger Factory-Design-Muster in PHP

黄舟
Freigeben: 2023-03-15 14:22:02
Original
1249 Leute haben es durchsucht

1. Factory-Muster
ist eine Klasse, die über bestimmte Methoden verfügt, die Objekte für Sie erstellen. Sie können eine Factory-Klasse verwenden, um Objekte zu erstellen, ohne new direkt zu verwenden. Wenn Sie auf diese Weise den Typ des erstellten Objekts ändern möchten, müssen Sie nur die Fabrik ändern. Der gesamte Code, der diese Fabrik verwendet, wird automatisch geändert.

Der folgende Code ist ein Beispiel für eine Factory-Klasse. Die Serverseite der Gleichung besteht aus zwei Teilen: einer Datenbank und einer Reihe von PHP-Seiten, die es Ihnen ermöglichen, Feedback hinzuzufügen, eine Liste mit Feedback anzufordern und Artikel zu einem bestimmten Feedback abzurufen.

Die IUser-Schnittstelle definiert, welche Operationen das Benutzerobjekt ausführen soll:


interface IUser
{  function getName();
}
Nach dem Login kopieren

Die Implementierung von IUser heißt User:


class User implements IUser
{  public function __construct( $id ) { } 
  public function getName()
  {    return "Jack";
  }
}
Nach dem Login kopieren

Die UserFactory-Factory-Klasse erstellt das IUser-Objekt:


class UserFactory
{  public static function Create( $id )
  {    return new User( $id );
  }
}
Nach dem Login kopieren

Der Testcode fordert das User-Objekt an die Fabrik und Ausgabe getName Methodenergebnis:


$pr = UserFactory::Create( 1 );echo( $pr->getName()."\n" );
Nach dem Login kopieren

Es gibt eine Variante des Fabrikmusters, die Fabrikmethoden verwendet. Diese öffentlichen statischen Methoden in einer Klasse erstellen Objekte dieses Typs. Diese Methode ist nützlich, wenn es wichtig ist, Objekte dieses Typs zu erstellen. Angenommen, Sie müssen zunächst ein Objekt erstellen und dann eine Reihe von Eigenschaften festlegen. Diese Version des Factory-Musters kapselt den Prozess an einem einzigen Ort, sodass Sie keinen komplexen Initialisierungscode kopieren und in die gesamte Codebasis einfügen müssen.


interface IUser //接口{  function getName();
} 
class User implements IUser
{  public static function Load( $id ) //静态函数  {        return new User( $id );
  }  public static function Create( ) //静态函数  {        return new User( null );
  }  public function __construct( $id ) { }//构造函数
 
  public function getName()
  {    return "Jack";
  }
} 
$uo = User::Load( 1 );echo( $uo->getName()."\n" );
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung gängiger Factory-Design-Muster in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!