Мы строим вычислительный движок, где у нас есть несколько объектов, которые взаимодействуют при выполнении вычислений. Объекты имеют зависимости между собой и имитируют подмножество системы реального мира. Мы строим вычислительный движок поэтапно, где мы постепенно моделируем части системы и, следовательно, можем привести к изменению графика зависимости по мере продвижения. Мы могли бы явно указать зависимость между объектами в коде, но это может привести к необходимости изменения этой части кода в будущем. Использует ли IoC эту проблему? Или это будет излишество?Является ли IoC подходящим для вычислительного механизма?
0
A
ответ
0
Есть несколько способов, что применение инъекции зависимостей может быть полезным:
- Это позволяет вам абстрактный код, который должен быть испытан в изоляции. В вашем случае вам может понадобиться разбить вычислительный движок на несколько частей, чтобы упростить проверку меньших частей этого движка или абстрагировать механизм базы данных, который движок использует внутри.
- Это позволяет развивать двигатель несколькими командами. В зависимости от абстракции, которую предоставляет другая команда (или вы указали для другой команды), она позволяет вам добиваться прогресса, не будучи заблокированным прогрессом другой команды.
- Если двигатель состоит из небольших деталей, которые должны меняться (шаблон спецификации), для этого можно использовать абстракции для этих частей. Вы даже можете сделать это во время выполнения, если просто зависеть от абстракции.
Если, однако, этот вычислительный движок разработан одной командой, он не имеет каких-либо зависимостей от чего-либо, что необходимо абстрагировать (базы данных, файловой системы и т. Д.), И не является настолько сложным, что тестирование отдельного части облегчили бы разработку и верификацию, использование инъекций зависимостей в этом вычислительном движке могло бы не помочь.
Смежные вопросы
- 1. Является ли smartclient подходящим?
- 2. Является ли "char []" подходящим типом?
- 3. Является ли F # подходящим для приложений физики?
- 4. Является ли R2RML подходящим для таблиц EAV?
- 5. Является ли Haskell подходящим для квантовых вычислений?
- 6. Является ли UINavigationController подходящим для циклов страниц?
- 7. Является ли rrdtool подходящим для анализа данных?
- 8. Является ли NHibernate подходящим для применения SPC?
- 9. Является ли Django подходящим для простых webapps?
- 10. Является ли C++ подходящим для разработки Android?
- 11. Является ли SQLite подходящим для форума?
- 12. Является ли LLVM подходящим для параллельных языков?
- 13. Является ли cakephp подходящим для корпоративного применения?
- 14. Является ли MapReduce подходящим для агрегации данных?
- 15. Является ли arduino подходящим для высокочастотного применения?
- 16. Является ли PriorityQueue подходящим для этого случая?
- 17. Является ли Umbraco подходящим для приложения LOB?
- 18. Является ли Java.awt.geom подходящим для дискретных вычислений?
- 19. Является ли Pand DataFrame подходящим для этого?
- 20. Является ли Doc2Vec подходящим для анализа настроений?
- 21. Является ли XPath подходящим для формата HTML5?
- 22. Является ли Haskell подходящим для длительных приложений?
- 23. Является ли XDocument подходящим для генерации HTML?
- 24. Является ли IllegalStateException подходящим для неизменяемого объекта?
- 25. Является ли Hashtable подходящим для хранения активов?
- 26. Является ли одноэлемент подходящим для этого дизайна?
- 27. Является ли Docker Compose подходящим для производства?
- 28. Является ли C# подходящим для языка сценариев?
- 29. Является ли Java подходящим для этого приложения?
- 30. Является ли Hadoop подходящим для этого?
Можете ли вы привести пример кода до и после одной из этих фаз? –