<?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');