Интерфейсы модулей

Интерфейсы модулей преднамеренно делаются высокоуровневыми. Иными словами, такие интерфейсы предоставляют разработчику лишь базовую функциональность (например, запросы на перемещения). Подробный подход вполне соответствует назначению модуля, что упрощает понимание программного кода и проектирование всей системы в целом.
Кроме того, такой принцип создания интерфейсов дает разработчику много преимуществ в смысле модульной структуры программного кода (точно так же, как и в разработке "серьезного" программного обеспечения). Самое главное из них заключается в том, что реализация может быть полностью абстрагирована от конкретных компонентов, что резко снижает количество взаимозависимостей отдельных частей программного кода.
Указанным подходам соответствует много методик построения систем ИИ, таких как распознавание образов (pattern recognition), предсказание (prediction), аппроксимация функций (function approximation) и т.д. Подобную функциональность, как правило, очень легко представить в виде одного достаточно простого интерфейса, на основе которого создаются различные реализации, учитывающие конкретные области применения.