您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“PHP中工廠模式和工廠方法模式分別是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
工廠:
$a = new Dog('abc');
接口中定義一一些方法
實現(xiàn)接口的類實現(xiàn)這些方法
工廠類:用以實例化對象
優(yōu)點:為系統(tǒng)結(jié)構(gòu)提供了靈活的動態(tài)擴展機制。方便維護
我們以代碼演示什么是工廠模式,首先新建一個文件,我們在文件里面創(chuàng)建一個接口,接口里面有兩個方法,緊接著我們寫兩個類實現(xiàn)此接口,然后我們需要把剛剛定義的兩個方法寫出來,然后我們在寫一個類,那么,我們?nèi)绾螌⑺麄儗懺谝粋€工廠中,通過工廠創(chuàng)建我們定義的兩個對象,我們先建立一個工廠類,然后在類里面寫一個靜態(tài)方法,然后給我們傳遞一個類型,然后我們來選擇類型,如果我們的類型是person那么我們就創(chuàng)建一個person,如果說我們要創(chuàng)建人類的對象,我們只需要通過工廠來創(chuàng)建就行了,具體代碼如下:
<?php interface Skill { function family(); function pome(); } class Person implements Skill { function family() { echo '如果努力有用的話,還要天才干什么<br />'; } function pome() { echo '愛恨癡狂,抵不過滄海一笑'; } } class JingLing implements Skill { function family( ) { echo '為什么會痛苦,一直微笑就好了<br />' ; } function buy() { echo '嘴上說不要,但你的眼睛很誠實嘛<br />'; } } class Factory { static function createHero($type) { switch ($type) { case'person' : return new Person(); break; case'jingling' : return new JingLing(); break; } } } $person = Factory::createHero('person'); $jing = Factory::createHero('jingling');
以上就是我們所謂的工廠模式;
工廠方法:
工廠方法模式核心是工廠類不再負責(zé)所有對象的創(chuàng)建,而是將具體創(chuàng)建的工作交給子類去做,成為一一個抽象工廠角色,它僅負責(zé)給出具體工廠類必須實現(xiàn)的接口,而不接觸哪一個產(chǎn)品類應(yīng)當(dāng)被實例化這種細節(jié)
根據(jù)上述代碼,我們了解我們的工廠模式要負責(zé)創(chuàng)建對象,我們以代碼為例:規(guī)定一個接口,同樣兩個方法,緊接著我們寫兩個類,而我們建立的工廠類只負責(zé)規(guī)定接口,具體的實現(xiàn)交給子類,具體我們以代碼為例:
<?php interface Tell { function pome(); function receive(); } class shiju implements TeLL { function pome( ) { echo '沒有心,就不會受傷'; } function receive( ) { echo'守護愛人的心,因恐懼失去而無悔'; } } class HuaWei implements TeLL { function call() { echo '不知道你的名字,但知道你的死期'; } function receive( ) { echo '花有再開的那天,人有重逢的時候嗎?'; } } //工廠類只負責(zé)規(guī)定接口,具體的實現(xiàn)交給子類 interface Factory { static function createPhone( ); } class XiaoFactory implements Factory { static function createPhone( ) return new XiaoMi (); } } class HuaWeiFactory implements Factory { static function createPhone() { return new HUawei(); } }
“PHP中工廠模式和工廠方法模式分別是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。