【发布时间】:2015-11-23 08:24:30
【问题描述】:
我有一组用 Java 实现并打包为 jar 文件的算法。这些算法旨在供第 3 方访问它们。算法有几种变体。加班,新版本和新类型的算法将被添加到。同时,我不会强迫所有第 3 方使用新算法。
我正在考虑为此实施一个简单的存储库系统。要求如下:
- 创建/删除存储库,以便每个存储库包含一组算法变体。
- 一个存储库中的算法可以同时运行 serverl 版本。
- 可以将新算法添加到存储库中。
是否有一些开源项目符合我的要求?或者有没有针对此类问题的设计模式?
【问题讨论】:
-
搜索接口和工厂。 (有趣的是你应该提到
design pattern。) -
我认为接口和工厂只是抽象了repo的外部行为,但我正在考虑repo内部机制的最佳实践。例如如何将不同版本的算法打包到 jar 中。如何存储它们,如何处理特定版本等
-
对于一个给定的算法,每个版本是否在一个单独的类中实现(不同的完全限定名称)?
-
我不想这样做,因为我不想将版本与类名结合起来。版本应仅在发布时确定。
-
根据算法的抽象级别,您可以查看 API 提供的 service provider interface。
标签: java design-patterns repository repository-design