我有一个小型实用程序库,其中包含一些经过完全单元测试的有用实用程序方法。目前,我的库没有外部依赖项。我正在考虑将日志记录添加到我的类中,这可能对调试有用。但这意味着将日志库与我的项目捆绑在一起。
我的问题是:我应该保持我的库依赖免费吗?这样做有什么好处吗?
我有一个小型实用程序库,其中包含一些经过完全单元测试的有用实用程序方法。目前,我的库没有外部依赖项。我正在考虑将日志记录添加到我的类中,这可能对调试有用。但这意味着将日志库与我的项目捆绑在一起。
我的问题是:我应该保持我的库依赖免费吗?这样做有什么好处吗?
我会添加一个日志接口,可用于抽象日志记录。然后允许用户通过此界面添加日志记录。你也应该使用这个接口,并且你应该在你的库中提供一个内置的“NullLogger”,如果不需要其他日志记录,就可以使用它。
您可以通过要求用户配置一个新的 NullLogger 来轻松不使用 NullLogger,只需通过配置文件或运行时发现即可。
这样做有很多优点,尤其是能够在大多数操作系统上运行。
使您的库完全无依赖性的一种方法是要求它在使用前进行初始化。然后你会在 your_lib_init(); function 将函数指针指向日志记录后端。这意味着,可以针对可能运行的任何平台重写后端。
还要弄清楚,如果您想要一个完全没有所有库依赖关系的库,或者一个依赖于标准类路径的库。如果是纯 Java,它将在 J2ME、Android、本地编译的 Java 和GCJ上运行,等等。如果它使用类路径,它将在所有类路径实现中可移植,实际上无论在哪里运行 OpenJDK。