各種工廠模式

2021-09-28 19:34:51 字數 2861 閱讀 4247

<?php

declare

(strict_types=1)

;// php 技術群:781742505

// 抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、

// 抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、

// 抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、抽象工廠、

inte***ce

product

class

shippableproduct

implements

product

public

function

calculateprice()

: int

}class

digitalproduct

implements

product

public

function

calculateprice()

: int

}class

productfactory

public

function

createdigitalproduct

(int $price

): product

}$factory

=new

productfactory()

;$product

=$factory

->

createshippableproduct

(150);

echo

$product

->

calculateprice()

;echo

"\n"

;// 靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、

// 靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、

// 靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、靜態工廠、

final

class

staticfactory

elseif

($type

=='string'

)throw

new\invalidargumentexception

('unknown format given');

}}inte***ce

formatter

class

formatstring

implements

formatter

}class

formatnumber

implements

formatter

}// assertinstanceof(

// 'designpatterns\creational\staticfactory\formatnumber',

// staticfactory::factory('number')

// );

// 簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、

// 簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、

// 簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、簡單工廠、

// 抽象工廠和簡單工廠的區別?

// 我的理解是,抽象工廠生產的是一系列具有相同介面的工廠。

// 然而簡單工廠只是生產任意工廠。

class

******factory

}class

bicycle

}$factory

=new

******factory()

;$bicycle

=$factory

->

createbicycle()

;$bicycle

->

driveto

('paris');

// 工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、

// 工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、

// 工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、工廠方法、

inte***ce

logger

class

stdoutlogger

implements

logger

}class

filelogger

implements

logger

public

function

log(string $message)}

inte***ce

logge***ctory

class

stdoutlogge***ctory

implements

logge***ctory

}class

filelogge***ctory

implements

logge***ctory

public

function

createlogger()

: logger

}$logge***ctory

=new

stdoutlogge***ctory()

;$logger

=$logge***ctory

->

createlogger()

;//$this->assertinstanceof(stdoutlogger::class, $logger);

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...

簡單工廠模式 工廠模式 抽象工廠模式

簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...

簡單工廠模式 工廠模式 抽象工廠模式

其實這個三個c 的設計模式已經學習很長時間了,今晚才想起來要寫這三個設計模式,為什麼要用c 中的設計模式呢?for example,你已經會開車了,正著開,倒著開,轉彎,這些都是開車基本的,但是你並沒有很高的車技,並不會炫酷。漂移,就好像c 中的設計模式一樣,在你學好c 的基礎上,嫻熟的應用出的新技...