簡介: 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。
優缺點:
優點:工廠處理好邏輯後,外部可直接呼叫,不用一一呼叫各自的邏輯類,優化**結構
缺點:違反高內聚責任分配原則
實現條件:
1.工廠條件:處理邏輯
2.產品角色:inte***ce 或者 abstract 產品父類,描述所有產品介面
3.產品具體角色:實現 inte***ce 或者繼承 abstract 的具體產品類,具體產品類;
**(**仿照白俊瑤部落格寫的,完全為了加深印象):
1.普通的例子
bad.php
index.php<?php
namespace
factory
;class
badelse
break
;case
'*':
$result
=$numa
*$numb
;break
;default
:throw
new\invalidargumentexception
('除數不能為0');
}return
$result
;}
2.把各個運算單獨封裝類<?php
require
__dir__
.'/../loader.php'
;spl_autoload_register
('loader::autoload');
//註冊自動載入
$program
=new
\factory\bad()
;$result
=$program
->
getresult(1
,'+',2
);echo
$result
;
operation.php
sub.php減法類<?php
namespace
factory
;abstract
class
operation
public
function
setnumberb
($number
)}
index.php<?php
namespace
factory
;abstract
class
operation
public
function
setnumberb
($number
)}
3.簡單工廠模式<?php
require
__dir__
.'/../loader.php'
;spl_autoload_register
('loader::autoload');
//註冊自動載入
$program
=new
\factory\sub()
;$program
->
setnumbera(5
);$program
->
setnumberb(2
);$result
=$program
->
getresult()
;echo
$result
;
factory.php
index.php<?php
namespace
factory
;class
factory
}}
<?php
require
__dir__
.'/../loader.php'
;spl_autoload_register
('loader::autoload');
//註冊自動載入
$program
=new
\factory\factory()
;$operation
=$program
->
create
('+');
$operation
->
setnumbera(5
);$operation
->
setnumberb(3
);$result
=$operation
->
getresult()
;echo
$result
;
設計模式 簡單工廠 工廠方法 抽象工廠方法模式
簡介 工廠方法模式分為 簡單工廠模式 工廠方法模式 抽象工廠方法模式 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的實 uml圖示例 public class ...
PHP設計模式 工廠方法
宣告 本系列部落格參考資料 大話設計模式 作者程杰。前面我們介紹了簡單工廠,今天我們繼續學習另外乙個工廠 工廠方法。具體案例 請mm去麥當勞吃漢堡,不同的mm有不同的口味,要每個都記住是一件煩人的事情,我們一般採用factorymethod模式,帶著mm到服務員那兒,說 要乙個漢堡 具體要什麼樣的漢...
簡單工廠設計模式和工廠方法設計模式
不論學習哪乙個設計模式,都要知道設計模式可以給我們帶來哪些好處,以及我們為什麼要學習設計模式。根據老師教導以及個人的片面經驗,我認為使用設計模式的目的是 增強 的復用性以及可維護性。可維護性就是以後是否方便擴充套件,增加了新的需求的話,是否好改,會不會出現非常難處理的問題,比如說 沒有很好地復用,構...