我正在使用Facade访问包内的方法和类,但是在包内?我必须直接或通过外观或类似的东西访问其他类的方法吗?
示例:Package 1(Class Foo, Class Bar, Facade FooBar)
Outside Class -> FooBar --> Foo method
但在里面:
Foo --> Bar
或Foo --> FooBar --> Bar
答案 0 :(得分:2)
Facade是一个单一的界面,可以轻松访问幕后的所有功能。与将组件之间的内部功能传递回系统(并通过接口返回)的要求不同。
Facade是控制面板,它们简化和隐藏内部组件,因此外部用户不会迷失在界面背后的复杂性中。一个内部组件的接口可以通过接口到达外部并通过接口进行操作,这将是一个很好的艺术展示,但是它会是一个糟糕的Facade,因为它会暴露它试图隐藏的东西。
Outside -> Facade -> Inside.
不
Outside -> Facade -> Inside -> Facade -> Inside.
或在你的情况下
OutSide -> FooBar -> Foo -> Bar
会没事的。