2011-02-14 35 views
3

今天有人問了這個有趣的問題,各種參數從Proxy到Wrapper到Decorator。AOP背後的底層設計模式是什麼?

想法?

+0

我認爲這取決於你如何實現AOP,如FAS,因爲我知道你可以實現它作爲一個構造函數注入方法,接口注入和setter注入 – sheidaei 2012-09-20 18:35:46

+0

根據GoF的包裝是裝飾的另一個名字。 – Greg 2016-06-27 02:57:27

回答

6

    的簡短描述
  • 代理:「爲另一個目的是控制訪問它提供一個代理或佔位符」 *
  • 裝飾:「附接額外的責任到對象動態「*
  • 適配器(包裝器):」將類的接口轉換爲客戶端期望的另一個接口。「*

在此基礎上,對我來說AOP看起來像(一個解決方案,通過解決了這個問題)裝飾,而不是代理 - 絕對不是適配器。

*從GoF的書。

7

「的參數從Proxy變化到包裝器裝飾」。

正確。這就是爲什麼他們給它一個新的名字 - 面向方面編程 - 而不僅僅是一個OOP設計模式。

如果可以減少到一個單一的設計模式,它不會持續很長時間的思想的市場。

關鍵是要採取的觀點是更廣泛一點。