Heim > Backend-Entwicklung > PHP-Tutorial > Beispiel für ein PHP-Factory-Muster

Beispiel für ein PHP-Factory-Muster

无忌哥哥
Freigeben: 2023-04-01 21:36:02
Original
1265 Leute haben es durchsucht

* Singleton-Muster: wird zum Erstellen eines eindeutigen Instanzobjekts eines einzelnen Typs verwendet

* Factory-Muster: wird zum Erstellen mehrerer Instanzobjekte mehrerer Typen verwendet

//Deklaration von Formklassen

class Shape
{
    //声明静态方法create,根据容器形状不同,创建不同图形类的实例
    public static function create($type,array $size=[])
    {
        //检测形状?
        switch ($type)
        {
            //长方形
            case 'rectangle':
                return new Rectangle($size[0],$size[1]);
                break;
            
            //三角形
            case 'triangle':
                return new Triangle($size[0],$size[1]);
                break;
                
        }
    }
}
Nach dem Login kopieren

//Deklarieren Sie die Rechteckklasse

class Rectangle
{
    private $width;  //宽度
    private $height; //高级
    public function __construct($witch,$height)
    {
        $this->width = $witch;
        $this->height = $height;
    }
    
    //计算长方形面积: 宽 * 高
    public function area()
    {
        return $this->width * $this->height;
    }
}
Nach dem Login kopieren

//Deklarieren Sie die Dreiecksklasse

class Triangle
{
    private $bottom;  //底边
    private $height;  //边长
    public function __construct($bottom,$height)
    {
        $this->bottom = $bottom;
        $this->height = $height;
    }
    
    //计算三角形面积:  (底 * 高) / 2
    public function area()
    {
        return ($this->bottom * $this->height)/2;
    }
}
Nach dem Login kopieren

//Verwenden Sie statische Methoden, um Formklassen zu instanziieren, anstatt das traditionelle Schlüsselwort new zu verwenden

//Instanziieren Sie je nach den verschiedenen Formtypparametern verschiedene Klassen und generieren Sie unterschiedliche Objekte

$rectangle = Shape::create('rectangle',[10,30]);
echo '长方形的面积是'.$rectangle->area();
echo &#39;<hr>&#39;;
$triangle = Shape::create(&#39;triangle&#39;,[20,50]);
echo &#39;三角形的面积是&#39;.$triangle->area();
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispiel für ein PHP-Factory-Muster. 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