設(shè)計模式不僅代表了一種更快地開發(fā)健壯軟件的有用方法,而且還提供了一種以友好的方式封裝大型創(chuàng)意的方法。許多不了解設(shè)計模式的人都說設(shè)計模式僅適用于Java架構(gòu)師。實際上,設(shè)計模式對每個人都非常有用。相信從事PHP開發(fā)的人員會比較熟悉設(shè)計模式,因為許多設(shè)計模式都將應(yīng)用于PHP開發(fā)中。那么PHP常用的設(shè)計模式有哪些?接下來我們一起來學(xué)習PHP中最常用的三種設(shè)計模式:單例設(shè)計模式、工廠設(shè)計模式和觀察者設(shè)計模式。
PHP常用的設(shè)計模式有哪些?
PHP常用的設(shè)計模式一:單例設(shè)計模式
所謂單例模式,即在應(yīng)用程序中最多只有該類的一個實例存在,一旦創(chuàng)建,就會一直存在于內(nèi)存中!
單例設(shè)計模式常應(yīng)用于數(shù)據(jù)庫類設(shè)計,采用單例模式,只連接一次數(shù)據(jù)庫,防止打開多個數(shù)據(jù)庫連接。
一個單例類應(yīng)具備以下特點:
單例類不能直接實例化創(chuàng)建,而是只能由類本身實例化。因此,要獲得這樣的限制效果,構(gòu)造函數(shù)必須標記為private,從而防止類被實例化。
需要一個私有靜態(tài)成員變量來保存類實例和公開一個能訪問到實例的公開靜態(tài)方法。
在PHP中,為了防止他人對單例類實例克隆,通常還為其提供一個空的私有__clone()方法。
PHP常用的設(shè)計模式二:工廠設(shè)計模式
工廠設(shè)計模式常用于根據(jù)輸入?yún)?shù)的不同或者應(yīng)用程序配置的不同來創(chuàng)建一種專門用來實例化并返回其對應(yīng)的類的實例。
我們舉例子,假設(shè)矩形、圓都有同樣的一個方法,那么我們用基類提供的API來創(chuàng)建實例時,通過傳參數(shù)來自動創(chuàng)建對應(yīng)的類的實例,他們都有獲取周長和面積的功能。
PHP常用的設(shè)計模式三:觀察者設(shè)計模式
觀察者模式是挺常見的一種設(shè)計模式,使用得當會給程序帶來非常大的便利,使用得不當,會給后來人一種難以維護的想法。
什么是觀察者模式?一個對象通過提供方法允許另一個對象即觀察者 注冊自己使本身變得可觀察。當可觀察的對象更改時,它會將消息發(fā)送到已注冊的觀察者。這些觀察者使用該信息執(zhí)行的操作與可觀察的對象無關(guān)。結(jié)果是對象可以相互對話,而不必了解原因。觀察者模式是一種事件系統(tǒng),意味著這一模式允許某個類觀察另一個類的狀態(tài),當被觀察的類狀態(tài)發(fā)生改變的時候,觀察類可以收到通知并且做出相應(yīng)的動作;觀察者模式為您提供了避免組件之間緊密耦。
上述就是關(guān)于PHP常用的設(shè)計模式有哪些的全部內(nèi)容介紹,想了解更多關(guān)于PHP常用的設(shè)計模式的信息,請繼續(xù)關(guān)注中培偉業(yè)。