摘要:原文地址設(shè)計(jì)模式七設(shè)計(jì)模式分類根據(jù)目的和范圍,設(shè)計(jì)模式可以分為五類。按照目的分為創(chuàng)建設(shè)計(jì)模式,結(jié)構(gòu)設(shè)計(jì)模式,以及行為設(shè)計(jì)模式。與類的設(shè)計(jì)模式不同,對(duì)象設(shè)計(jì)模式主要用于運(yùn)行期對(duì)象的狀態(tài)改變動(dòng)態(tài)行為變更等。
Introduction原文地址:PHP設(shè)計(jì)模式(七):設(shè)計(jì)模式分類
根據(jù)目的和范圍,設(shè)計(jì)模式可以分為五類。按照目的分為:創(chuàng)建設(shè)計(jì)模式,結(jié)構(gòu)設(shè)計(jì)模式,以及行為設(shè)計(jì)模式。按照范圍分為:類的設(shè)計(jì)模式,以及對(duì)象設(shè)計(jì)模式。下面分別介紹。
創(chuàng)建設(shè)計(jì)模式創(chuàng)建設(shè)計(jì)模式(Creational patterns),用于創(chuàng)建對(duì)象時(shí)的設(shè)計(jì)模式。更具體一點(diǎn),初始化對(duì)象流程的設(shè)計(jì)模式。當(dāng)程序日益復(fù)雜時(shí),需要更加靈活地創(chuàng)建對(duì)象,同時(shí)減少創(chuàng)建時(shí)的依賴。而創(chuàng)建設(shè)計(jì)模式就是解決此問(wèn)題的一類設(shè)計(jì)模式。
結(jié)構(gòu)設(shè)計(jì)模式結(jié)構(gòu)設(shè)計(jì)模式(Structural patterns),用于繼承和接口時(shí)的設(shè)計(jì)模式。結(jié)構(gòu)設(shè)計(jì)模式用于新類的函數(shù)方法設(shè)計(jì),減少不必要的類定義,減少代碼的冗余。
行為設(shè)計(jì)模式行為設(shè)計(jì)模式(Behavioral patterns),用于方法實(shí)現(xiàn)以及對(duì)應(yīng)算法的設(shè)計(jì)模式,同時(shí)也是最復(fù)雜的設(shè)計(jì)模式。行為設(shè)計(jì)模式不僅僅用于定義類的函數(shù)行為,同時(shí)也用于不同類之間的協(xié)議、通信。
類的設(shè)計(jì)模式類的設(shè)計(jì)模式(Class patterns),用于類的具體實(shí)現(xiàn)的設(shè)計(jì)模式。包含了如何設(shè)計(jì)和定義類,以及父類和子類的設(shè)計(jì)模式。
對(duì)象設(shè)計(jì)模式對(duì)象設(shè)計(jì)模式(Object patterns),用于對(duì)象的設(shè)計(jì)模式。與類的設(shè)計(jì)模式不同,對(duì)象設(shè)計(jì)模式主要用于運(yùn)行期對(duì)象的狀態(tài)改變、動(dòng)態(tài)行為變更等。
為什么會(huì)重構(gòu)?重構(gòu)通常是由于現(xiàn)有程序的框架不能很好的適應(yīng)新需求,雖然可以通過(guò)硬編碼(hardcode)或者繞過(guò)(bypass)的方式來(lái)解決一個(gè)新需求,但這并不是長(zhǎng)久之計(jì)。當(dāng)新需求越來(lái)越多時(shí),現(xiàn)在程序會(huì)越來(lái)越冗余,導(dǎo)致最后的不可維護(hù)。
架構(gòu)和設(shè)計(jì)模式的區(qū)別相比架構(gòu)(frameworks),設(shè)計(jì)模式是一些抽象的組成架構(gòu)的元素,且更為靈活通用。
架構(gòu)更適合解決具體問(wèn)題,使用架構(gòu)構(gòu)建應(yīng)用程序?qū)⒏鼮榭旖荩贿^(guò)相比設(shè)計(jì)模式,架構(gòu)犧牲了靈活性。
本文介紹了設(shè)計(jì)模式的分類,后面我們將分別介紹各種設(shè)計(jì)模式。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/21645.html
摘要:原文地址設(shè)計(jì)模式十適配器模式在設(shè)計(jì)模式七設(shè)計(jì)模式分類中我們提到過(guò)結(jié)構(gòu)設(shè)計(jì)模式,結(jié)構(gòu)設(shè)計(jì)模式專注于設(shè)計(jì)對(duì)象和實(shí)例的構(gòu)建組合過(guò)程。適配器模式在不修改現(xiàn)有代碼的基礎(chǔ)上,保留了架構(gòu)。 原文地址:PHP設(shè)計(jì)模式(十):適配器模式 Introduction 在PHP設(shè)計(jì)模式(七):設(shè)計(jì)模式分類中我們提到過(guò)結(jié)構(gòu)設(shè)計(jì)模式(Structural patterns),結(jié)構(gòu)設(shè)計(jì)模式專注于設(shè)計(jì)對(duì)象(Objec...
摘要:原文地址設(shè)計(jì)模式八工廠模式在設(shè)計(jì)模式七設(shè)計(jì)模式分類中我們提到過(guò)創(chuàng)建設(shè)計(jì)模式,創(chuàng)建設(shè)計(jì)模式專注于設(shè)計(jì)對(duì)象和實(shí)例的創(chuàng)建過(guò)程。工廠模式工廠模式,也是五種設(shè)計(jì)模式中唯一的類的設(shè)計(jì)模式,即在類中就能實(shí)現(xiàn)的設(shè)計(jì)模式。 原文地址:PHP設(shè)計(jì)模式(八):工廠模式 Introduction 在PHP設(shè)計(jì)模式(七):設(shè)計(jì)模式分類中我們提到過(guò)創(chuàng)建設(shè)計(jì)模式(Creation patterns),創(chuàng)建設(shè)計(jì)模式專...
摘要:我們?cè)谛陆ㄒ粋€(gè)刪除前的鉤子函數(shù),再利用遞歸方法實(shí)現(xiàn)子欄目的刪除。最后我們刪除把鉤子函數(shù)恢復(fù)到原始狀態(tài)在瀏覽器中輸入,然后點(diǎn)擊美國(guó)一欄中的刪除,此時(shí)會(huì)同時(shí)刪除美國(guó)下的紐約。至此,無(wú)限級(jí)分類的刪除功能操作完畢。 在此現(xiàn)更正一下之前的預(yù)告,之前忘記了先應(yīng)該把無(wú)限級(jí)分類欄目列表功能做完,也就是刪除功能還沒(méi)做,所以今天我們先做刪除,下一節(jié)再做面包屑導(dǎo)航。非常抱歉。 同時(shí),不知道是什么原因,上一節(jié)...
摘要:準(zhǔn)備工作服務(wù)器最好使用服務(wù)器,小白推薦安裝寶塔面板。備案域名小程序賬號(hào)建議注冊(cè)企業(yè)賬號(hào),可以使用已認(rèn)證的公眾號(hào)快速創(chuàng)建。七牛賬號(hào)使用,加快網(wǎng)站訪問(wèn)速度。如需使用小程序發(fā)帖,也會(huì)用到。注意不要使用以下的。 showImg(https://segmentfault.com/img/bVUUeU?w=600&h=280); 準(zhǔn)備工作 1服務(wù)器 最好使用Linux服務(wù)器,小白推薦安裝寶塔面板。...
閱讀 4301·2021-11-17 09:33
閱讀 3420·2021-10-08 10:05
閱讀 3350·2021-09-22 15:36
閱讀 1307·2021-09-06 15:02
閱讀 2912·2019-08-29 12:45
閱讀 1724·2019-08-26 13:40
閱讀 3583·2019-08-26 13:37
閱讀 568·2019-08-26 13:37