Реализация Rails 3 с модулем? - PullRequest
0 голосов
/ 28 февраля 2011

Я программирую веб-игру, и, как вы можете себе представить, очень важно, чтобы я написал хороший код для того, чтобы сохранить игру и не иметь слишком много проблем в будущем.

Как вы можете догадаться, в игре есть некоторые значения и функции, которые на самом деле не подходят для модели (или, по крайней мере, ее подгонка сделает модель слишком толстой, я думаю).Например, подумайте о случае, когда вы хотите вычислить формулу опыта для данного монстра или когда вы хотите рассчитать здоровье монстра, пользователя и т. Д. На основе их очков здоровья.

Я полагаю, что все этивсе еще может подходить для модели пользователя или монстра, но, по моему мнению, было бы адски вносить изменения во все короткие места вокруг разных моделей.Более того, у монстра есть hp, у пользователя - hp, было бы странно иметь одинаковые функции в 2 или более разных моделях (таким образом, не DRY).

Итак, я думаю об использовании модулякак "game_engine / Formulas" и расширять его, добавляя больше вещей, если что-то появится.

Но я хотел получить некоторое экспертное мнение по этому поводу.Вы бы сделали это таким образом?Или есть что-то лучше?

1 Ответ

0 голосов
/ 28 февраля 2011

Если вы собираетесь делиться кодом, который применяется к нескольким моделям, хорошим способом для этого является модуль. Тогда вы можете просто поставить Include MyModule в каждой модели. Но модуль должен быть несколько абстрактным и не должен знать, в какой модели работает его код, т. Е. Он не должен пытаться «определить», в какой модели он находится, но он вполне может получить информацию. из содержащей модели, вызывая методы модели или получая доступ к ее атрибутам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...