Heim >Backend-Entwicklung >PHP-Tutorial >Power Academy Design Pattern PHP-Video-Tutorial-Sharing

Power Academy Design Pattern PHP-Video-Tutorial-Sharing

黄舟
黄舟Original
2017-08-30 10:18:371239Durchsuche

„Power Academy Design Pattern PHP Video Tutorial“ stellt zunächst das Designmuster vor, erläutert die Verwendung und Bedeutung des Designmusters und erläutert ausführlich die Gelegenheiten, bei denen das Designmuster angewendet wird. Als Nächstes werden anhand von Codebeispielen eine Reihe von Entwurfsmustern vorgestellt. Abschließend wird in einer umfassenden und detaillierten Fallanalyse veranschaulicht, wie Designmuster zum Planen neuer Anwendungen verwendet werden, wie diese Muster in der PHP-Sprache geschrieben werden und wie die im Video vorgestellten Designmuster verwendet werden, um vorhandene Codeblöcke zu ändern und umzugestalten.

Power Academy Design Pattern PHP-Video-Tutorial-Sharing

Adresse für die Kurswiedergabe: http://www.php.cn/course/424.html

Der Unterrichtsstil des Lehrers:

Die Vorträge des Lehrers sind einfach und tiefgründig, klar im Aufbau, schichtweise analysiert, ineinandergreifend, rigoros in der Argumentation, rigoros im Aufbau , die logische Kraft des Denkens nutzen, um die Aufmerksamkeit der Schüler zu erregen und den Unterrichtsprozess im Klassenzimmer rational zu steuern. Durch das Anhören der Vorlesungen der Lehrer lernen die Schüler nicht nur Wissen, sondern erhalten auch eine Denkschulung und werden auch von der strengen akademischen Haltung der Lehrer beeinflusst und beeinflusst.

Der schwierigere Punkt in diesem Video ist das Factory-Methodenmuster, das ausführlich erklärt wird:

1 Mustereinführung

Definieren Sie eine Schnittstelle zum Erstellen von Objekten. sodass Unterklassen entscheiden, welche Klasse instanziiert werden soll, und Factory-Methoden die Instanziierung einer Klasse auf ihre Unterklassen verschieben.

2 Rollen im Muster

2.1 Rolle der Abstract Factory (Ersteller): Sie ist der Kern des Factory-Methodenmusters und hat nichts mit der Anwendung zu tun. Jede Factory-Klasse für im Muster erstellte Objekte muss diese Schnittstelle implementieren.
2.2 Rolle des konkreten Schöpfers (Concrete Creator): Dies ist eine konkrete Fabrikklasse, die die abstrakte Fabrikschnittstelle implementiert, eine eng mit der Anwendung verbundene Logik enthält und von der Anwendung aufgerufen wird, um Produktobjekte zu erstellen. Im Bild oben gibt es zwei solcher Rollen: BulbCreator und TubeCreator.
2.3 Abstrakte Produktrolle (Produktrolle): Der Supertyp des durch das Factory-Methodenmuster erstellten Objekts, bei dem es sich um die gemeinsame übergeordnete Klasse oder die gemeinsam genutzte Schnittstelle des Produktobjekts handelt. Im Bild oben ist dieser Charakter Light.
2.4 Konkrete Produktrolle: Diese Rolle implementiert die durch die abstrakte Produktrolle definierte Schnittstelle. Ein bestimmtes Produkt wird von einer bestimmten Fabrik hergestellt und es besteht häufig eine Eins-zu-eins-Entsprechung zwischen ihnen.

PHP-Quellcode-Design

<?php  
/** 
 * 工厂方法。由于简单工厂违背了开发-封闭原则 
 * 工厂方法。将这个改变放到了客户端 
 * copyright (c) http://blog.csdn.net/CleverCode     
 */  
  
// 运算抽象类    
class Operation  
{  /*{{{*/  
  
    // 数字A    
    protected $_numberA = null;    
  
    // 数字B    
    protected $_numberB = null;    
  
    /**  
     * 设置成员A  
     *  
     * @param double $num 数字  
     * @return void  
     */    
    public function setNumberA($num){    
        $this->_numberA = $num;    
    }    
  
    /**  
     * 获取成员A  
     *  
     * @return double 数字  
     */    
    public function getNumberA(){    
        return $this->_numberA;    
    }    
  
    /**  
     * 设置成员B  
     *  
     * @param double $num 数字  
     * @return void  
     */    
    public function setNumberB($num){    
        $this->_numberB = $num;    
    }    
  
    /**  
     * 获取成员B  
     *  
     * @return double 数字  
     */    
    public function getNumberB(){    
        return $this->_numberA;    
    }    
  
    /**  
     * 获取运算结果  
     *  
     * @return double 数字  
     */    
    public function getResult(){    
        return null;    
    }    
}  /*}}}*/  
  
// 加法类    
class OperationAdd extends Operation  
{  /*{{{*/  
  
    /**  
     * 获取运算结果  
     *  
     * @return double 数字  
     */    
    public function getResult(){    
        return $this->_numberA + $this->_numberB;    
    }    
}  /*}}}*/  
  
// 减法类    
class OperationSub extends Operation  
{  /*{{{*/  
  
    /**  
     * 获取运算结果  
     *  
     * @return double 数字  
     */    
    public function getResult(){    
        return $this->_numberA - $this->_numberB;    
    }    
}  /*}}}*/  
  
//运算工厂  
interface IFactory  
{/*{{{*/  
    public function createOperate();  
}/*}}}*/  
  
//加法工厂  
class AddFactory implements IFactory  
{/*{{{*/  
  
    public function createOperate()  
    {  
        return new  OperationAdd();   
    }  
}/*}}}*/  
  
//减法工厂  
class SubFactory implements IFactory   
{/*{{{*/  
    public function createOperate()  
    {  
        return new OperationSub();   
    }  
}/*}}}*/  
  
class Client   
{/*{{{*/  
    public static function main($argv)  
    {  
       //简单工厂的switch case 放到了客户端了  
       $factory = new AddFactory();  
       $add = $factory->createOperate();  
       // 设置数字A    
       $add->setNumberA(5);    
            
       // 设置数字B    
       $add->setNumberB(2);    
            
       // 运算    
       echo $add->getResult()."\r\n";     
           
    }  
}/*}}}*/  
  
Client::main($argv);  
  
?>

Das obige ist der detaillierte Inhalt vonPower Academy Design Pattern PHP-Video-Tutorial-Sharing. 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