Это теоретический вопрос о шаблонах программирования для проекта с открытым исходным кодом.Лучшая практика - реализация интерфейса как плагина
Мы разрабатываем проект с открытым исходным кодом Araword (написанный на Java, но это отчасти актуально), мы хотим добавить автономную функцию Text-To-Speech, так как теперь используется только онлайн-TTS от Google.
Программное обеспечение работает кросс-платформенно. Поэтому в соответствии с базовой ОС пользователь должен иметь возможность выбирать между своей платформой TTS или кросс-платформенным (Google).
Мы хотим переключаться между каждой реализацией TTS в элегантной манере, но о том, как лучше всего практиковать.
1) Я слышал о Factory Method шаблон на википедии:
http://en.wikipedia.org/wiki/Factory_method_pattern
2) IoC/Услуги местоположение картина:
http://en.wikipedia.org/wiki/Service_locator_pattern
Я был бы признателен за любые предложения.
Может быть, [Стратегия Pattern] (http://en.wikipedia.org/wiki/Strategy_pattern). Я думаю, что это не по теме, поскольку она основана на мнениях. Нет ни одного истинного ответа. – keyser
Ознакомьтесь с [статьей Мартина Фаулера об инверсии контроля] (http://www.martinfowler.com/articles/injection.html). Он не является поклонником Service Locator, и я тоже. (Также вы можете попробовать [SE Programmer] (http://programmers.stackexchange.com/) как лучшее место, чтобы получить ответы на основе мнения.) – markspace
@markspace мнение основанные на вопросах, очень плохи для программистов - они, как правило, быстро прогоняются и закрываются там, см. http://meta.programmers.stackexchange.com/questions/6483/why-was-my-question-closed-or-down -voted/6491 # 6491 Рекомендуемое чтение: ** [Что происходит с Programmers.SE? Руководство по переполнению стека] (http://meta.programmers.stackexchange.com/q/7182/31260) ** – gnat