BKJIA獨家特稿】在《PHP設計模式漫談》中我們了解到,結構模式之間有許多相似之處,因為在對象模型結構中存在幾種關系:類之間的繼承和實現,加上對象組合,這些是PHP設計模式的主要目的。
關於《PHP設計模式漫談》更多內容,可以參閱BKJIA之前的報道:PHP設計模式漫談之責任鏈模式 PHP設計模式漫談之代理模式
對象組合的最大優勢在於可以在運行時基於配置建立起一個關系,並不用修改實際的代碼,它是類繼承和接口實現需要的一個操作。實際上,你完全可以通過修改對象之間而非類之間的鏈接定義一個應用程序的功能,這是設計的一部分。
結構模式清單
適配器-橋接-外觀Adapter-Bridge-Facade)
這三個模式的目標是競爭耦合:
◆適配器模式Adapter)使用不同的接口連接對象;
◆橋接模式Bridge)將一個M抽象層和一個N實現層分離成N+M類,代替M*N用法;
◆外觀模式Facade)創建一個新的統一的界面來訪問子系統。
復合-裝飾-代理Composite-Decorator-Proxy)
這三個模式維護相同的對象接口,它們透明地添加正交關注,客戶端不會察覺:
◆復合模式為其它對象增加容器組織層次結構,並將樹作為其它樹的葉子進行重用;
◆裝飾模式通過攔截方法授權添加行為,避免引入大量的子類;
◆代理模式給一個還不存在或很難訪問的對象授權操作。
最後,享元模式Flyweight)是一個無身份的ValueObjects標准實現。
原文名:Practical Php Patterns: Structural patterns summary 作者:Giorgio
原文出處:http://giorgiosironi.blogspot.com/2010/02/practical-php-patterns-structural.html