Java:实例化还是继承?

问题描述:

我正在为我的一个应用程序编写日志记录服务,但我相信很多其他应用程序会使用它。在这种情况下,让应用程序扩展一个类并让所有日志记录默认启用(因为某些日志记录,如应用程序入口点和退出点,无论任何代价都是必需的),还是让原始类实例化一个新的日志记录对象,然后在需要的地方放置日志语句?Java:实例化还是继承?

实例化一个新的日志记录对象。你的物体毕竟不是伐木工,是吗?

如果从记录器继承,你还得到了以下问题

  1. 你的对象可以作为记录这可能不是什么它是为
  2. 你不能从其他类继承
  3. 你不能轻易地登录交换机的政策,尤其是在运行时

一般情况下,一个人应该非常小心,当谈到拉拔T之间的泛化wo类。

+0

谢谢。我认为这些问题对我来说很清楚。 – Legend 2009-11-17 23:44:25

而不是创建一个新的日志服务 - 为什么不使用其中的一个日志框架呢?所有应有的尊重 - 他们将比任何你写的更好的测试和更好的文件记录!

我不会沿着继承路线走下去,这会使你在早期阶段与一个可能发展和改变的阶级联系起来。

+0

你说得对。我最好使用现有的日志记录库。我之所以想到这个唯一的原因是因为它不是一个完整的日志记录服务,而且还提供了一些项目特定的功能。无论如何,谢谢你的回复。 – Legend 2009-11-17 23:45:11

在OOP中,您必须遵守对象收集数据和逻辑的规律。

如果您的对象必须执行一些任务(服务)或操作某些数据,那么没关系。但它不是一个记录器。

您应该将事件触发到另一个服务或对象来执行日志。

还要小心你的对象如何知道记录器......注入,组合,工厂......这是关于你的日志框架和你的对象任务。