Yii2 設計模式——Yii2 中用到哪些設計模式?

Yii 2 設計模式“包含了兩個方面的內容:1. 設計模式,2. Yii 2 框架。

《設計模式》一書雖然以JAVA語言來表達設計模式的思想,但是設計模式遠不限制於某一種特定的語言,而是在面向對象編程中通用的思想,各個語言也都有各自的實現方式。

Yii 2 是一款優秀的 PHP Web 框架,Yii2 框架的裏裏外外都借鑑了很多設計模式的思想。而且,越是 Yii2 內核的部分,設計模式運用的越多。同樣的,其他優秀的框架如 Symphony2/Laravel 也是如此,學習 Yii2 的設計模式,無疑對認識其他框架,對提高自己編碼能力,加深對軟件設計的認識都非常有幫助。

Yii2 設計模式,集中體現在依賴注入(di),服務定位器(service locator),數據庫(db),緩存(cache),請求(Request),響應(Response)等核心組件上。

PHP設計模式

根據使用目的設計模式一般可爲分爲三類:

  • 創建型模式(Creational Patterns)
  • 結構型模式(Structural Patterns)
  • 行爲型模式(Behavioral Patterns)

具體都有哪些,網上資料隨便一搜便出來了,筆者在這裏不再列出來。

《設計模式》提到的 23 中經典設計模式,PHP 都有自己實現的方式,其中有些模式用的並不多,此外 PHP 中還有別的一些常用的模式,它們都有:

  • 依賴注入模式(DependencyInjection)

  • 服務定位器模式(ServiceLocator)

  • MVC模式

  • 對象池模式(Pool)

  • 數據訪問對象模式(DAO)

  • 流接口模式(Fluent Interface)

  • 規約模式(Specification)

  • 委託模式(Delegation)

  • Repository模式

Yii2設計模式

經筆者的歸納,Yii2用到的設計模式主要由下面的這些,根據類型可歸納爲:

創建型

  • 單例(Singleton)
  • 工廠方法(FactoryMethod)
  • 抽象工廠(AbstractFactory)
  • 建造者(Builder)
  • 原型(Prototype)
  • 對象池(Pool)

行爲型

  • 觀察者(Observer)
  • 策略(Strategy)
  • 模板方法(TemplateMethod)
  • 迭代器(Iterator)

結構型

  • 組合(Composite)
  • 適配器(Adaptor)
  • 橋接(Bridge)
  • 裝飾器(Decorator)
  • 外觀(Facade)
  • 依賴注入(DependencyInjection)
  • 流接口模式(Fluent Interface)
  • 數據訪問對象模式(DAO)

其他

  • 服務定位器(ServiceLocater)
  • MVC
    – 委託模式(Delegation)

Yii2中設計模式,有些並不嚴格遵循《設計模式》中標準的定義和使用方法,甚至有時會表現出很大的差異性。但好在“形散而神不散”,細節雖偶有不同而精髓卻是一樣的。筆者將會幫助讀者發現這些”隱藏極深“的使用技巧。

雖然筆者聊的對象是Yii2框架,然而實際目的是使大家熟悉設計模式,順帶的再聊下六大設計原則。最終的目的是提升大家在實際編碼中的能力。

最後,給大家推薦一個好的開源項目 DesignPatternsPHP,對PHP所有常用的模式都有介紹和源碼。另外,筆者自己的開源項目 design-pattern 也介紹了 PHP 常用的設計模式,大家都可結合着學習下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章