【发布时间】:2009-11-17 23:24:40
【问题描述】:
我正在为我的一个应用程序编写日志服务,但我确信许多其他应用程序会使用它。在这种情况下,让应用程序扩展一个类并在原始类中默认启用我的所有日志记录(因为不惜一切代价需要一些日志记录,如应用程序入口点和出口点)或只是让应用程序实例化是否有意义一个新的日志对象,然后在需要的地方放置日志语句?
【问题讨论】:
标签: java inheritance logging instantiation
我正在为我的一个应用程序编写日志服务,但我确信许多其他应用程序会使用它。在这种情况下,让应用程序扩展一个类并在原始类中默认启用我的所有日志记录(因为不惜一切代价需要一些日志记录,如应用程序入口点和出口点)或只是让应用程序实例化是否有意义一个新的日志对象,然后在需要的地方放置日志语句?
【问题讨论】:
标签: java inheritance logging instantiation
实例化一个新的日志对象。你的对象毕竟不是记录器,是吗?
如果你继承自logger,你还会遇到以下问题
一般来说,在绘制两个类之间的概括时应该非常小心。
【讨论】:
与其创建一个新的日志服务 - 为什么不使用其中一个日志框架呢?恕我直言,它们将比您编写的任何东西都经过更好的测试和更好的记录!
我不会沿着继承路线走,这会使您在早期阶段与一个可能会发展和变化的类联系在一起。
【讨论】:
在 OOP 中,您必须遵守对象收集数据和逻辑的规律。
如果您的对象必须执行某些任务(服务)或操作某些数据,那没关系。但它不是记录器。
您应该向另一个服务或对象触发一个事件来记录日志。
还要注意您的对象如何了解记录器...注入、组合、工厂...这与您的日志记录框架和对象任务有关。
【讨论】: