最佳实践 - 将接口实现为插件

时间:2015-03-25 22:16:06

标签: java factory-pattern

这是关于开源软件项目的编程模式的理论问题。

我们正在分发开源项目Araword(用Java编写,但这部分相关),我们想要添加离线的文字转语音功能,就像现在它一样。仅使用谷歌的在线TTS。

该软件跨平台运行。因此,根据底层操作系统,用户必须能够在与平台相关的TTS实施或跨平台(Google)实施之间做出选择。

我们希望以优雅的方式在每个TTS实现之间切换,但有哪些最佳实践。

1)我在wikipedia上听说过Factory Method Pattern:

http://en.wikipedia.org/wiki/Factory_method_pattern

2)IoC /服务位置模式:

http://en.wikipedia.org/wiki/Service_locator_pattern

我很感激任何建议。

1 个答案:

答案 0 :(得分:1)

如果您想切换到系统的TTS,请执行以下操作:

  1. 创建一个类来管理TTS系统
  2. 让班级检查操作系统,然后相应地切换TTS
  3. 使用TTS类动态使用系统的TTS。

  4. 或者,使用跨平台的FreeTTS库,然后实现(请注意声音质量较低)。

    FreeTTS项目可以在这里找到:

    http://freetts.sourceforge.net/docs/index.php