laravel中用到了不少設計模式,實現這些設計模式時也用到了很多php新特性。學習這些設計模式,能夠幫助咱們:php
(laravel中的代碼用到不少新特性,例如php中的閉包和匿名函數,理解這些才能更好的理解代碼)html
閉包與匿名函數
1.裝飾者模式laravel
裝飾者模式是在開放——關閉原則下實現動態添加或減小功能的一種方式。
說明:裝飾者模式就是不修改原類代碼和繼承的狀況下動態擴展類的功能。傳統的編程模式都是子類繼承父類實現方法重載,使用裝飾器模式,只需添加一個新的裝飾器對象,更加靈活,避免類數量和層次過多
裝飾者模式詳解
2.IOC服務容器編程
能夠理解爲工廠模式的昇華版。
提供須要類的註冊,同時綁定依賴關係的類,實現自動註冊類
IOC服務容器概念詳解
IOC服務容器源碼詳解
3.門面模式segmentfault
Facades(讀音:/fəˈsäd/ )爲應用程序的服務容器中可用的類提供了一個「靜態」接口。Laravel 自帶了不少 facades ,幾乎能夠用來訪問到 Laravel 中全部的服務。Laravel facades 其實是服務容器中那些底層類的「靜態代理」,相比於傳統的靜態方法, facades 在提供了簡潔且豐富的語法同時,還帶來了更好的可測試性和擴展性。
門面模式詳解