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