抱歉标题含糊;想不出如何更清楚地表达它。以下是问题的重点:
强调
- 询问有关ExifTool for Java库的 API 设计问题。
- 这是当前 API 外观的示例。
- 作为USER,该 API 使用起来非常简单,因为您只需传入 Enums 即可获取您想要返回的图像元数据。
- 作为DEV,API 有点糟糕,因为您无法轻松地使用更多 Enum 类型扩展基类以支持可能不直接在 lib 中支持的其他元数据。
- 简单地预先定义和支持“所有元数据”并非易事。
问题
鉴于这些设置信息,我想要找到一种方法来预定义人们通常希望从图像中获得的 30 或 40 个最常见的元数据标志;现在一切都被定义为 Enum,但该类不能以这种方式扩展。
如果我采用“Class-per-Metadata-flag”路线,可扩展性会很简单,但开箱即用的 API 会不太友好。
如果闭包提供了一个非常漂亮和简单的解决方案,我将考虑制作这个库的 v2.0 Java 8+,但否则我显然更愿意让它与更多系统(Java 6/7)兼容而不是更少。
概括
我对该库的目标是“易于使用和扩展”——我觉得我已经在 1.x 版本中确定了“易于使用”的方面,但该库不容易扩展,我想在2.x 系列。
我已经在 2.x 版本上等待了一年多的时间来等待灵感来袭,但它却让我望而却步;我希望有人能发现我的错误,并且我可以以一种非常优雅的方式向前推进 lib。
谢谢你们的时间!