本文目錄一覽:
什麼是PHP中的工廠設計模式
工廠模式分為三種:簡單工廠、工廠方法、抽象工廠 ,三種工廠的區別是,抽象工廠由多條產品線,而工廠方法只有一條產品線,是抽象工廠的簡化。而工廠方法和簡單工廠相對,大家初看起來好像工廠方法增加了許多代碼但是實現的功能和簡單工廠一樣。但本質是,簡單工廠並未嚴格遵循設計模式的開閉原則,當需要增加新產品時也需要修改工廠代碼。但是工廠方法則嚴格遵守開閉原則,模式只負責抽象工廠接口,具體工廠交給客戶去擴展。在分工時,核心工程師負責抽象工廠和抽象產品的定義,業務工程師負責具體工廠和具體產品的實現。只要抽象層設計的好,框架就是非常穩定的。
PHP怎麼實現工廠模式?
?php
/**
* 單例模式和工廠模式
*
* 保證一個類僅有一個實例,並提供一個訪問它的全局訪問點
*
*/
class Singleton
{
static private $_instance = null;
private function __construct()
{
}
static public function getInstance($class=”)
{
if(empty($class)){
if(is_null(self::$_instance)) {
self::$_instance = new Singleton();
}
return self::$_instance;
}else{
static $class_object=array();
if(empty($class_object[$class])){
include dirname(__FILE__).’/includes/classes/’.$class.’.class.php’;
$class_object[$class]=new $class();
}
return $class_object[$class];
}
}
public function display()
{
echo “it is a singlton class function”;
}
}
// $obj = new Singleton(); // 聲明不能成功
$obj = Singleton::getInstance();
var_dump($obj);
$obj-display();
$obj1 = Singleton::getInstance();
var_dump(($obj === $obj1));
什麼是php工廠模式
工廠模式使用時,返回的對象之間沒有關係。單例模式返回始終是同一個對象。可以在代碼的定義明顯的區分出來,單例模式的構造函數 一般是私有的,不允許實例化,通過內部靜態方法實例化自己,同類型的對象始終返回同一個。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/182108.html