面向對象編程的基本原則
1、單一職責原則。一個類,只需要做好一件事情,不要一個類就完成所有的事情,我們應該將其拆分成小的模塊,每個負責每個的職責,切勿貪多。
2、開發封閉原則。一個類,應該可以擴展,但不可修改。不應該使用修改來增加功能,而是通過擴展來增加功能。
3、依賴倒置原則。一個類,不應該強依賴於另外一個類。每個類,對於另外一個類,都是可以替換的。比如有A和B兩個類,如果A需要依賴於B,那實際上不應該在A類中,直接調用B類,而是應該使用依賴注入的方式,通過注入,將B類的對象,注入給A類,這樣的話,B對A來說,是可以替換的。如果現在有一個類C,提供了跟B類一致的接口,這時候,就可以在C和B之間切換。
4、配置化原則。儘可能地使用配置,而不是硬編碼。就是說,對於一些數據參數,我們應該把它寫到文件裏,調的時候,直接通過調取配置文件,獲取相關參數,而非將這些配置數據,赤裸裸地寫在代碼行裏。還有,像類的關係,也應該是可以配置,寫入到配置文件的。比如3裏面提到的例子A、B、C三個類,到底A是應該依賴於B,還是C,都是應該在配置文件裏配置的,而非,在代碼行裏設置操作。
5、面向接口編程原則。而非,面向實現編程,只需要關心接口,而不是,關心實現。拿3的例子來說,比如A,只需要瞭解B和C提供了哪個接口,而不需要關心B和C是怎麼實現的。
MVC結構
模型,試圖,控制器。MVC結構是一種B/S或C/S軟件工程的組織方式。
1、模型(Model):數據的存儲和封裝。也就是說關於數據庫的操作都是在模型層來完成的!
2、視圖(View):展現層的封裝,如Web系統的模板文件。也就是放html、html文件的地方,用來顯示網頁數據信息的。
3、控制器(Controller):業務代碼或功能的實現部分。
作爲一種工程組織結構,我們在開始編碼的時候,需要設置Apache或Nginx,對入口文件進行映射。將所有非靜態的url映射到PHP文件,準確地說是Controller控制器的某個方法。
配置與設計模式
1、PHP中使用ArrayAccess實現配置文件的加載
2、在工廠方法中讀取配置,生成可配置化的對象
3、使用裝飾器模式實現權限驗證,模板渲染,JSON串化
4、使用觀察者模式,實現數據更新事件的一系列更新操作
5、使用代理模式實現數據庫的主從自動切換
-------------------------------------------------------------------------
相關聲明:此次PHP設計模式系列,基於慕課網 Rango老師《大話PHP設計模式》課程,學習整理,僅供學習,不作任何商業用途!若發文有不妥之處,請聯繫本人,做相關處理。