Какие паттерны или какой подход лучше всего использовать в данной задаче?
Нужно разработать библиотеку классов, которая бы полностью реализовывала логику игры - допустим клона Pacman, а в дальнейшем использовать ее при разработке графического представления. Основной момент заключается в том, что графическое представление может быть разным (2д, 3d). Оно должно быть полностью независимо от самой логики игры и подставляться по выбору.
Реализцаия IoC(Инверсия управления) через Dependency Injection.
Опишите логику игры скрыв все компоненты которые должны быть нестабильными/гибкими (см. Stable Abstractions Principle) за абстракциями(интерфейсами/абстрактными классами).
Все что вам нужно - отсутствие любых прямых зависимостей от реализации UI(пользовательского интерфейса) и, желательно, устройств ввода.
Я думаю, вам требуется создать иммитационную модель реального времени, причем:
- с публичными свойствами как координаты./жизни...
- каждый такт проверять входные параметры управления (нажата кнопки, положение мыши)
- такт запускается из вне