|
結(jié)構(gòu)模式之間有許多相似之處,因?yàn)樵趯?duì)象模型結(jié)構(gòu)中存在幾種關(guān)系:類之間的繼承和實(shí)現(xiàn),加上對(duì)象組合,這些是php設(shè)計(jì)模式的主要目的。
對(duì)象組合的最大優(yōu)勢(shì)在于可以在運(yùn)行時(shí)基于配置建立起一個(gè)關(guān)系,并不用修改實(shí)際的代碼,它是類繼承和接口實(shí)現(xiàn)需要的一個(gè)操作。實(shí)際上,你完全可以通過(guò)修改對(duì)象之間而非類之間的鏈接定義一個(gè)應(yīng)用程序的功能,這是設(shè)計(jì)的一部分。
結(jié)構(gòu)模式清單
適配器-橋接-外觀(Adapter-Bridge-Facade)
這三個(gè)模式的目標(biāo)是競(jìng)爭(zhēng)耦合:
◆適配器模式(Adapter)使用不同的接口連接對(duì)象;
◆橋接模式(Bridge)將一個(gè)M抽象層和一個(gè)N實(shí)現(xiàn)層分離成N+M類,代替M*N用法;
◆外觀模式(Facade)創(chuàng)建一個(gè)新的統(tǒng)一的界面來(lái)訪問(wèn)子系統(tǒng)。
復(fù)合-裝飾-代理(Composite-Decorator-Proxy)
這三個(gè)模式維護(hù)相同的對(duì)象接口,它們透明地添加正交關(guān)注,客戶端不會(huì)察覺(jué):
◆復(fù)合模式為其它對(duì)象增加容器組織層次結(jié)構(gòu),并將樹(shù)作為其它樹(shù)的葉子進(jìn)行重用;
◆裝飾模式通過(guò)攔截方法授權(quán)添加行為,避免引入大量的子類;
◆代理模式給一個(gè)還不存在或很難訪問(wèn)的對(duì)象授權(quán)操作。
最后,享元模式(Flyweight)是一個(gè)無(wú)身份的ValueObjects標(biāo)準(zhǔn)實(shí)現(xiàn)。
php技術(shù):PHP設(shè)計(jì)模式之結(jié)構(gòu)模式的深入解析,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。