扩展单例类错了吗?

Eng*_*ain 5 logging singleton design-patterns extending

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

我扩展了logger类,因为我想添加一些静态函数.在这些静态函数中,我在内部使用Logger的实例(单个)(我继承了).

我既没有创建MyLogger的实例,也没有重新实现超类的getInstance()方法.但我仍然得到像MyLogger的析构函数一样的警告,因为无法访问父类(Loggger)析构函数.

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

das*_*ght 4

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

  • 使用包含在 C++ 命名空间中的独立函数
  • 在 C# 中使用扩展类
  • 在 Java 中使用辅助类
  • 在 Objective-C 中使用类别