每个 Facade 都应该作为 Singleton 实现吗?

Mar*_*zak 3 architecture oop singleton design-patterns

在 Facade 和 Singleton 的描述中,您可以读到:“Facade 通常被实现为单例”。

我想知道什么时候应该将 Facade 实现为单例,什么时候这是一个坏主意。

Fen*_*ndy 5

不。它通常被实现,因为更容易调用,但它有几个缺点(从此答案添加):

  1. 代码耦合
  2. 默认情况下非并发安全
  3. 不可测试

该链接的优点(缺点)之一是,它具有整个应用程序的生命周期,因此它永远不会被丢弃。如果调用者无法控制,这可能会很糟糕。

特别适用于框架组件。