| **Движок**, **двигатель** (англ. //engine//) - обособленный компонент приложения, реализующий некоторую универсальную часть его функциональности. Ключевая особенность движка - абстракция, независимость от приложения. В движок выносится наиболее общая функциональность с целью повторного использования (//code reuse//) в других проектах. Вынос функциональности в движок является частным случаем [[модуль|модульности]]. Родственным понятием является [[framework|фреймворк]] - каркас приложения, содержащий типовую функциональность, где пользовательский код добавляется методом [[ioc|инверсии контроля]]. Движок, в отличие от фреймворка, обычно не является каркасом приложения и позволяет программисту самостоятельно решать, в какой последовательности делать вызовы процедур. Тем не менее, игровые фреймворки, особенно крупные, также принято называть движками. | **Движок**, **двигатель** (англ. //engine//) - обособленный компонент приложения, реализующий некоторую универсальную часть его функциональности. Ключевая особенность движка - абстракция, независимость от приложения. В движок выносится наиболее общая функциональность с целью повторного использования (//code reuse//) в других проектах. Вынос функциональности в движок является частным случаем [[модуль|модульности]]. Родственным понятием является [[framework|фреймворк]] - каркас приложения, содержащий типовую функциональность, где специализированный код добавляется методом [[ioc|инверсии контроля]]. Движок, в отличие от фреймворка, обычно не является каркасом приложения и позволяет программисту самостоятельно решать, в какой последовательности делать вызовы процедур. Тем не менее, игровые фреймворки, особенно крупные, также принято называть движками. |