Низкое сцепление и жесткое сцепление - PullRequest
3 голосов
/ 22 февраля 2011

Конечно, это зависит от ситуации.Но когда объект или система более низкого уровня обмениваются данными с системой более высокого уровня, следует ли отдавать предпочтение обратным вызовам или событиям, а не указателю на объект более высокого уровня?

Например, если мы работаем над игрой, мы имеемworld class с переменной-членом vector<monster> monsters.Когда monster class будет связываться с world class, я должен предпочесть использовать функцию обратного вызова тогда, или я должен иметь указатель на мировой класс внутри класса монстров?

1 Ответ

6 голосов
/ 22 февраля 2011

Обычно предпочтительнее использовать обратные вызовы для связи с классами более высокого уровня по указанным вами причинам и во избежание взаимных / циклических зависимостей.

В вашем случае вам все равно нужно определить, что является модулем нижнего уровня. Должен ли мир действительно знать, что такое монстр? Разве монстры не просто существа или противники? Разве монстру не нужна какая-то среда, чтобы действовать? Только вы можете ответить на это, чтобы прийти к работоспособному решению.

...