天天看點

php設計模式——簡單工廠(靜态工廠)模式

<?php
/**
 * Class SimpleFactory 簡單工廠類(靜态工廠方法類)
 * 屬于【建立型模式】,在簡單工廠模式中,可以根據參數的不同傳回不同類的執行個體.
 * 簡單工廠模式專門定義一個類來負責建立其他類的執行個體,被建立的執行個體通常都具有共同的父類
 */
class SimpleFactory{
    static function cars( $type )
    {
        if( !class_exists($type) ){
            throw new Exception('class not found');
        }
        return new $type();
    }
}

// 操作類
abstract class cars{

}

// 具體實作類
class Porsche extends cars{
    public function __construct()
    {
        echo '保時捷';
    }
}

// 具體實作類
class Ferrari extends cars{
    public function __construct()
    {
        echo '法拉利';
    }
}

SimpleFactory::cars('Porsche');
SimpleFactory::cars('Ferrari');