Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Rolle spielt das PHP-Designmuster-Fabrikmuster?

Welche Rolle spielt das PHP-Designmuster-Fabrikmuster?

黄舟
黄舟Original
2017-11-13 15:03:593219Durchsuche

Wir haben Ihnen die Vorteile des PHPFactory-Modus, die Bedeutung des Factory-Modus und die drei Situationen des Factory-Modus vorgestellt. Deshalb werden wir Ihnen heute weiterhin die Rolle des PHP-Factory-Modus vorstellen !

Fabrikmuster werden in drei Typen unterteilt: einfache Fabrik, Fabrikmethode und abstrakte Fabrik. Der Unterschied zwischen den drei Fabriktypen besteht darin, dass die abstrakte Fabrik mehrere Produktlinien hat, während die Fabrikmethode nur ein Produkt hat Linie, die eine Vereinfachung der abstrakten Fabrik darstellt. Die Factory-Methode ist das Gegenteil der einfachen Factory. Auf den ersten Blick scheint es, dass die Factory-Methode viel Code hinzufügt, aber dieselben Funktionen wie die einfache Factory implementiert. Das Wesentliche ist jedoch, dass die einfache Fabrik nicht strikt dem Öffnungs- und Schließprinzip des Designmusters folgt. Wenn neue Produkte hinzugefügt werden müssen, muss auch der Fabrikcode geändert werden. Die Factory-Methode hält sich jedoch strikt an das Öffnungs- und Schließprinzip. Der Modus ist nur für die abstrakte Factory-Schnittstelle verantwortlich, und die spezifische Factory wird dem Kunden überlassen. Im Rahmen der Arbeitsteilung sind Kerningenieure für die Definition abstrakter Fabriken und abstrakter Produkte verantwortlich, während Wirtschaftsingenieure für die Implementierung spezifischer Fabriken und spezifischer Produkte verantwortlich sind. Solange die Abstraktionsschicht gut gestaltet ist, ist das Framework sehr stabil.

Einfache Fabrik

Vorteile: Produktbenutzer müssen sich nicht um den Erstellungsprozess von Produktklassen kümmern und erzielen einen Entkopplungseffekt von den Implementierungsklassen spezifischer Produkte (OCP). ), da beim Hinzufügen einer neuen Produktklasse die ursprüngliche Factory-Methode geändert werden muss;

anwendbare Gelegenheiten: Wenn die Factory-Klasse für die Erstellung von weniger

Objekten als

verantwortlich ist;Implementierungsmethode: Definieren Sie eine einfache gemeinsame Klasse, definieren Sie eine statische Produktionsmethode und generieren Sie die entsprechende spezifische übergeordnete Klasse gemäß dem übergebenen Typparameter

Der spezifische Code lautet wie folgt

<?php//抽象产品interface Person {
    public function getName(); }//具体产品实现class Teacher implements Person {
    public function getName() {
        return "老师n";
    }}class Student implements Person {
    public function getName() {
        return "学生n";
    }}//简单工厂class SimpleFactory {
    public static function getPerson($type) {
      $person = null;
      if ($type == &#39;teacher&#39;) {
        $person = new Teacher();
      } elseif ($type == &#39;student&#39;) {
        $person = new Student();
      }
      return $person;
    }}//简单工厂调用class SimpleClient {
    function main() {
      // 如果不用工厂模式,则需要提前指定具体类
      // $person = new Teacher();
      // echo $person->getName();
      // $person = new Student();
      // echo $person->getName();

      // 用工厂模式,则不需要知道对象由什么类产生,交给工厂去决定
      $person = SimpleFactory::getPerson(&#39;teacher&#39;);
      echo $person->getName();
      $person = SimpleFactory::getPerson(&#39;student&#39;);
      echo $person->getName();
    }}

Zusammenfassung: Durch das Studium dieses Artikels glaube ich, dass jeder ein neues Konzept für die Rolle des PHP-Fabrikmusters hat Wird bei Ihrer Arbeit hilfreich sein! ~

Verwandte Empfehlungen:

Analyse zu den Vorteilen der Verwendung von PHP-Factory-Mustern


Eine kurze Einführung in die drei PHP-Factory-Muster


Was ist das PHP-Factory-Muster? Warum den PHP-Factory-Modus verwenden?

Das obige ist der detaillierte Inhalt vonWelche Rolle spielt das PHP-Designmuster-Fabrikmuster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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