КЛАССЫ ИНТЕРФЕЙСА
Главная задача – написать классы интерфейса так, чтобы они не мешали менять модель. Пишите интерфейс так, чтобы вы могли беспрепятственно вносить правки в модель.

В основу реализации классов в паттерне MVC лежит паттерн Observer. Его можно реализовать встроенными средствами языка C#, например, использовав конструкцию event Action.

Реализация классов интефейса

В проектировании игр практически всегда применяется паттерн «Игровой цикл». Его используют для обработки пользовательского ввода, расчета физики и прочих процессов, протекающих в игре НЕПРЕРЫВНО. Велик соблазн написать интерфейс с использованием паттерна «Игровой цикл», каждый кадр обновляя значение на элементе интерфейса.
ПЛОХОЙ КОД
Хороший код интерфейса вызывает методы отрисовки только тогда, когда состояние интерфейса должно поменяться. Для этого в классах модели необходимо реализовать паттерн Observer.
Класс ModelNumber с помощью конструкции public event Action<int> сообщает о том, что его значение изменилось. Это можно отследить в классе отрисовки. Причем событие возвращает число, которое нужно отрисовать в интерфейсе.
В классе NumberDrawer мы подписываемся на событие модельного класса и только после вызова события изменяем отрисованное число.

ОБЯЗАТЕЛЬНО ПИШИТЕ ИНТЕРФЕЙС ЧЕРЕЗ ПАТТЕРН OBSERVER

Теперь у нас три экземпляра классов отрисовки, которые выводят значение. Но мы можем быстро внести изменения. Представьте, что теперь вам нужно показать текущее значение, значение на два меньше и квадрат этого значения. В архитектуре MVC для этого достаточно написать только два класса-наследника и методы в них.

Реализация интерфейса через OBSERVER позволяет добавить новую функциональность, не изменяя старую, если вы будете придерживаться парадигмы ООП и паттерна MVC.

ЗАЧЕМ?
Чтобы вы могли беспрепятственно изменять классы модели, поддерживая скорость разработки игры на высоком уровне.