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