2011-05-27 40 views
1

我使用Facade訪問包內的方法和類,但是在包內部?我必須直接或通過門面或類似的東西訪問其他類的方法?包內,我必須使用Facade Pattern(或類似的東西)?

實施例:Package 1(Class Foo, Class Bar, Facade FooBar)

Outside Class -> FooBar --> Foo method

但裏面:

Foo --> BarFoo --> FooBar --> BarFacade

+1

wait..what ?!你能否詳細說明一下?我很難理解這個問題 – fasseg 2011-05-27 19:36:15

+0

現在看圖像。更好的Foo直接或通過Facade訪問Bar的方法? – 2011-05-27 19:50:30

回答

1

阿立面是一個單一的接口,其允許所有功能正在進行的幕後容易訪問。將組件之間的內部功能傳回系統(並通過接口返回)是不同的。

外觀是控制面板,它們可以簡化和隱藏內部組件,因此外部用戶不會迷失在界面背後的複雜內容中。一個內部組件的接口可以通過接口回到外部並通過接口操縱自己,這將形成一個良好的藝術表現,但是會是一個糟糕的Facade,因爲它會暴露出它試圖隱藏的內容。

Outside -> Facade -> Inside. 

Outside -> Facade -> Inside -> Facade -> Inside. 

或在您的情況

OutSide -> FooBar -> Foo -> Bar 

會就好了。

相關問題