PHP設計模式之簡單工廠模式*解讀

「PHP」簡單工廠

PHP簡單工廠模式的工廠類通常是使用靜態方法,經過接收的參數的不一樣來返回不一樣的對象實例。php

也就是使用的時候經過傳參來肯定生成不一樣的對象。laravel

簡單工廠面試

官方PHP高級學習交流社羣「點擊」管理整理了一些資料,BAT等一線大廠進階知識體系備好(相關學習資料以及筆面試題)以及不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨sql

簡單工廠須要有3個角色:shell

  • 產品接口類:用於定義產品規範;設計模式

  • 具體的產品實現,例如ConcreateProductA,ConcreateProductB;服務器

  • 簡單工廠類SimpleFactory:用於生成具體的產品。架構

使用的時候經過傳參數給簡單工廠類,能夠生成想要的產品。併發

代碼:ICar.php:定義產品規範:分佈式

命名空間 Yjc \ SimpleFactory ;

接口 ICar
{
    公共 功能 驅動程序();
}

具體產品實現:

namespace Yjc\SimpleFactory;

class Benz implements ICar
{
    public function driver()
    {
        echo 'benz driver.';
    }
}

class Bmw implements ICar
{
    public function driver()
    {
        echo 'bmw driver.';
    }
}

簡單工廠類SimpleFactory:

命名空間 Yjc \ SimpleFactory ;

類 SimpleFactory
{
    公共 靜態 功能 makeCar($型){
         開關($型){
             案 '奔馳':
                 返回 新 奔馳();
                休息 ;
            狀況下, 'BMW' :
                 返回 新 寶馬();
                休息 ;
            默認值:
                 拋出 new \ Exception('不支持類型!');
                打破;
        }
    }
}

參數代碼:

$車 = SimpleFactory :: makeCar( '奔馳');
$ car- > driver();

簡單工廠的優勢/缺點

優勢:簡單工廠模式可以根據外部給定的信息,決定確切應該建立一個具體類的對象。明確區分了各自的職責和權力,有利於整個軟件體系結構的優化。

缺點:很明顯工廠類別集中了全部實例的建立邏輯,徹底違反了GRSPR的高內聚的責任分配原則。

PHP 互聯網架構師成長之路*「設計模式」終極指南

PHP 互聯網架構師 50K 成長指南+行業問題解決總綱(持續更新)

面試10家公司,收穫9個offer,2020年PHP 面試問題

★若是喜歡個人文章,想與更多資深開發者一塊兒交流學習的話,獲取更多大廠面試相關技術諮詢和指導,歡迎加入咱們的羣-點擊此處

相關文章
相關標籤/搜索