java - 像包装器一样使用 Facade

标签 java design-patterns wrapper anti-patterns facade

我经常看到有人这样使用门面。

public class FooFacade {
   Foo foo;

   public boolean isFunny(param1, param2) {
       IsFunnyInput isFunnyInput = new IsFunnyInput(param1, param2);
       return foo.isFunny(isFunnyInput);
   }
}

这是正确的方法吗?在我看来,这只是在包中添加一个类。当您也可以直接使用 Foo 执行相同操作时。

最佳答案

对我来说,这是 the decorator pattern 的一个例子仅当 FooFooFacade 共享相同的接口(interface)时才有意义。

interface Foo { boolean isFunny(p1, p2); }
class FooFacade implements Foo { ... } // FooDecorator, actually

相比之下,the Facade pattern用于执行涉及几个不同类的更复杂的交互(并隐藏这种复杂性)。

The Wrapper pattern (aka Adapter)意味着多个接口(interface)。

关于java - 像包装器一样使用 Facade,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50048644/

相关文章:

java - 如何在iText7中为单个页面设置页面标签?

java - 从 HashMap 中只打印一个对象

java - 为什么 SonarQube 无法分配请求的地址?

java - 如何在 Android Studio 中检查字符串是否为空或 null

function - 包装到带有进度条的FOR循环

Asp.net DAL 和 BLL 首选设计模式方法

java - 按需初始化 holder 习语的正确实现

c# - 代理、包装器或外观类之间有什么区别

c++ - 编程基本的应用程序内内存分析 : how to count pointers that are created?

python - ctypes python 中的浮点指针并传递结构指针