gpt4 book ai didi

design-patterns - 扩展单例类是错误的吗?

转载 作者:行者123 更新时间:2023-12-04 20:18:03 24 4
gpt4 key购买 nike

我正在为应用程序创建一个记录器。我正在使用第三方记录器库。其中记录器被实现为单例。

我扩展了那个记录器类,因为我想添加一些更多的静态函数。在这些静态函数中,我在内部使用了 Logger 的实例(它是单一的)(我继承了它)。

我既没有创建 MyLogger 的实例,也没有重新实现父类(super class)的 getInstance() 方法。
但是我仍然收到警告,例如无法创建 MyLogger 的析构函数,因为父类 (Loggger) 析构函数不可访问。

我想知道,
我做错了什么吗?
继承单例是错误的还是应该避免的??

最佳答案

撇开单例模式的优点不谈(有一种思想流派将其描述为反模式),没有必要对其进行子类化以简单地添加静态功能。以下是我更喜欢子类化单例的特定于语言的方法:

  • 使用包含在 C++ 命名空间中的独立函数
  • 在 C# 中使用扩展类
  • 在 Java 中使用辅助类
  • 在 Objective-C 中使用类别
  • 关于design-patterns - 扩展单例类是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9876781/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com