Каково большое различие в изображении между наблюдателями и обратными вызовами?

Каково большое различие в изображении между наблюдателями и обратными вызовами? Когда и где использовать который?

7
задан Mohit Jain 17 May 2010 в 15:28
поделиться

3 ответа

Речь идет о разделении ответственности.

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

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

11
ответ дан 6 December 2019 в 23:02
поделиться

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

Из строгого архитектурного POW (как отмечено в ответе Джона) речь идет о разделении обязанностей , но если это простая вещь, я предпочитаю вставить ее в модель в любом случае.

Технически разницы практически нет.

0
ответ дан 6 December 2019 в 23:02
поделиться

Для меня то же самое. Но я предпочитаю обратный вызов вместо Observer.

Наблюдатель - это обратный вызов, но в отдельной модели.

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

0
ответ дан 6 December 2019 в 23:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: