【问题标题】:Should every Facade be implemented as Singleton?每个 Facade 都应该实现为 Singleton 吗?
【发布时间】:2013-10-02 07:57:27
【问题描述】:

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

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

【问题讨论】:

    标签: oop architecture singleton design-patterns


    【解决方案1】:

    没有。它通常被实现,因为更容易调用,但它有几个缺点(从this answer添加):

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

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

    特别适用于框架组件。

    【讨论】:

    • 那么什么时候应该实现单例呢?您的回答表明它永远不应该是单例。
    • 当你遵循 SOLID 原则和 TDD 时,永远不要做单例。正如这个答案所述:stackoverflow.com/a/142450/2155396,单例仅解决 1 个问题,即如果您只需要一个实例来进行实时(例如日志记录)。
    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2019-09-25
    • 2010-10-24
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多