溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中工廠模式和工廠方法模式分別是什么

發(fā)布時間:2021-06-23 11:12:32 來源:億速云 閱讀:101 作者:chen 欄目:編程語言

本篇內(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ì)量的實用文章!

向AI問一下細節(jié)

免責(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)容。

php
AI