Моя проблема в том, что мы пытаемся использовать инфраструктуру MVC (PHP).После долгих обсуждений думаю, что MVC очень хорош, но я упускаю возможность написать многократно используемую логику модели (приложения).Поэтому я не уверен, что у нас есть правильный подход для реализации нашего программного обеспечения в среде MVC.
Сначала я опишу не-MVC, oo-подход, который мы используем в данный момент.
Например - мы работаем над некоторыми браузерными играми (да, это наша профессия).Представьте, что у нас есть объект игрока.Мы используем этот объект игрока очень часто.У нас есть несколько разных страниц, где вы можете купить мысли, поэтому вам нужно совершать «денежные» транзакции на «банковском счете» игроков или представлять, что вы можете сражаться с другими игроками.У нас есть несколько сценариев боя, и эти сценарии принимают 2 или более объектов игрока (это зависит от типа битвы, например, битва клана, битва игрок против игрока ...).
Итак, у нас есть несколькостраницы (и контроллеры) с различной боевой логикой.Но каждый из этих контроллеров использует объект игрока для вычисления всех атрибутов и предметов, которые есть у игрока, и какой урон и защита будет наносить игрок.
Итак, как мы можем повторно использовать логику в объекте игрока в случае, еслимодели MVC?было бы плохо дублировать всю необходимую логику в различных контроллерах и -моделях.
Я думаю, что логика "gold -action" была бы хорошим примером, чтобы дать вам более подробную информацию.вам нужна транзакционная функция в случае боя, если вы выигрываете у другого игрока и забираете часть его золота, вам нужна транзакционная функция в случае покупки какого-либо предмета и вам нужна транзакционная функция в случае траты некоторого золотадля гильдии игроков ...
Так что, я бы сказал, было бы плохим подходом определять все эти функции в одной модели игрока!Я могу сказать, что эта модель игрока будет очень большой (на самом деле у нас проблема в том, что наш класс игрока действительно огромный - класс бога)
Как вы думаете, есть решение в стиле MVC для этой проблемы?