
M8qQqulRcX.jpeg
翻譯進度請見:https://laravel-china.org/docs/php-design-patterns/2018?mode=sections
設(shè)計模式不僅代表著更快開發(fā)健壯軟件的有用方法,而且還提供了以友好的術(shù)語封裝大型理念的方法。例如,您可以說您正在編寫一個提供松散耦合的消息傳遞系統(tǒng),也可以說你正在編寫名稱為觀察者 的模式。
用較小的示例展示模式的價值是非常困難的。這往往有些大材小用的意味,因為模式實際上是在大型代碼庫中發(fā)揮作用的。本文不展示大型應(yīng)用程序,所以您需要思索的是在您自己的大型應(yīng)用程序中應(yīng)用示例原理的方法 —— 而不是本文演示的代碼本身。這不是說您不應(yīng)該在小應(yīng)用程序中使用模式。很多良好的應(yīng)用程序都以小應(yīng)用程序為起點,逐漸發(fā)展到大型應(yīng)用程序,所以沒有理由不以此類扎實的編碼實踐為基礎(chǔ)。
—— from ibm developerworks
設(shè)計模式是 PHP 代碼架構(gòu)師必學(xué)的知識,Laravel 中也使用了大量的設(shè)計模式,相信深入學(xué)習(xí)過 Laravel 的同學(xué),對以下很多專有名詞如 『依賴注入模式(Dependency Injection)』、『門面模式(Facade)』都不會感覺到陌生:
-
創(chuàng)建型
在軟件工程中,創(chuàng)建型設(shè)計模式是處理對象創(chuàng)建機制的設(shè)計模式,試圖以適當(dāng)?shù)姆绞絹韯?chuàng)建對象。對象創(chuàng)建的基本形式可能會帶來設(shè)計問題,亦或增加了設(shè)計的復(fù)雜度。創(chuàng)建型設(shè)計模式通過控制這個對象的創(chuàng)建方式來解決此問題。- 抽象工廠模式(Abstract Factory)
- 建造者模式(Builder)
- 工廠方法模式(Factory Method)
- 多例模式(Multiton)
- 對象池模式(Pool)
- 原型模式(Prototype)
- 簡單工廠模式(Simple Factory)
- 單例模式(Singleton)
- 靜態(tài)工廠模式(Static Factory)
-
結(jié)構(gòu)型
在軟件工程中,結(jié)構(gòu)型設(shè)計模式是通過識別實體之間關(guān)系來簡化設(shè)計的設(shè)計模式。- 適配器模式(Adapter)
- 橋梁模式(Bridge)
- 組合模式(Composite)
- 數(shù)據(jù)映射模式(Data Mapper)
- 裝飾模式(Decorator)
- 依賴注入模式(Dependency Injection)
- 門面模式(Facade)
- 流接口模式(Fluent Interface)
- 享元模式(Flyweight)
- 代理模式(Proxy)
- 注冊模式(Registry)
-
行為型
在軟件工程中,行為設(shè)計模式是識別對象之間的通用通信模式并實現(xiàn)這些模式的設(shè)計模式。 通過這樣做,這些模式增加了執(zhí)行此通信的靈活性。- 責(zé)任鏈模式(Chain Of Responsibilities)
- 命令行模式(Command)
- 迭代器模式(Iterator)
- 中介者模式(Mediator)
- 備忘錄模式(Memento)
- 空對象模式(Null Object)
- 觀察者模式(Observer)
- 規(guī)格模式(Specification)
- 狀態(tài)模式(State)
- 策略模式(Strategy)
- 模板方法模式(Template Method)
- 訪問者模式(Visitor)
- 更多類型
- 委托模式(Delegation)
- 服務(wù)定位器模式(Service Locator)
- 資源庫模式(Repository)
- 實體屬性值模式(EAV 模式)
翻譯規(guī)范和對照表:請見這里。
已于 2018 年 3 月 26 日翻譯完畢,參與用戶 19 人,詳細(xì)列表請見 參與譯者。