PHP設計模式 簡單工廠方法

2021-10-01 21:10:03 字數 2574 閱讀 9793

簡介: 簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實現。

優缺點:

優點:工廠處理好邏輯後,外部可直接呼叫,不用一一呼叫各自的邏輯類,優化**結構

缺點:違反高內聚責任分配原則

實現條件:

1.工廠條件:處理邏輯

2.產品角色:inte***ce 或者 abstract 產品父類,描述所有產品介面

3.產品具體角色:實現 inte***ce 或者繼承 abstract 的具體產品類,具體產品類;

**(**仿照白俊瑤部落格寫的,完全為了加深印象):

1.普通的例子

bad.php

<?php

namespace

factory

;class

badelse

break

;case

'*':

$result

=$numa

*$numb

;break

;default

:throw

new\invalidargumentexception

('除數不能為0');

}return

$result

;}

index.php

<?php

require

__dir__

.'/../loader.php'

;spl_autoload_register

('loader::autoload');

//註冊自動載入

$program

=new

\factory\bad()

;$result

=$program

->

getresult(1

,'+',2

);echo

$result

;

2.把各個運算單獨封裝類

operation.php

<?php

namespace

factory

;abstract

class

operation

public

function

setnumberb

($number

)}

sub.php減法類

<?php

namespace

factory

;abstract

class

operation

public

function

setnumberb

($number

)}

index.php

<?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

;

3.簡單工廠模式

factory.php

<?php

namespace

factory

;class

factory

}}

index.php

<?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到服務員那兒,說 要乙個漢堡 具體要什麼樣的漢...

簡單工廠設計模式和工廠方法設計模式

不論學習哪乙個設計模式,都要知道設計模式可以給我們帶來哪些好處,以及我們為什麼要學習設計模式。根據老師教導以及個人的片面經驗,我認為使用設計模式的目的是 增強 的復用性以及可維護性。可維護性就是以後是否方便擴充套件,增加了新的需求的話,是否好改,會不會出現非常難處理的問題,比如說 沒有很好地復用,構...