Допустим, вы создали два объекта: objectA и objecB. Если Objecta необходимо отправить сообщение на objectB это должно происходить так:Когда объект A хочет отправить сообщение объекту B, где должен жить метод?
objectA.theMessage(objectB)
или как это:
objectB.theMessage(objectA)
Более конкретный пример:
Publisher p;
Subscriber s;
// way 1
p.addSubscriber(s);
// way 2
s.subscribeTo(p);
Как вы можете видеть, семантика обоих messeges (функций) одинакова, а именно вопрос о том, где должна функционировать функция.
Есть жесткое и быстрое правило, в котором говорится, что нужно делать? Или есть общее руководство, которое поможет вам определить, какой из них лучше? Или это дело в отдельности и нет общего руководства? Если да, не могли бы вы объяснить, когда я буду использовать их каждый. Можете ли вы представить себе какие-либо потенциальные преимущества/недостатки каждого?
Большое спасибо за ваше время и знания!
Вы получите больше внимания на этот вопрос, если бы вы добавили тег, специфичный для языка, но то, что вы ищете, называется шаблоном Observer. –
Благодарим вас за советы по добавлению языкового тега! :) Я знаю о шаблоне наблюдателя, вот почему я использовал пример издателя/подписчика :) ха-ха. О чем я спрашиваю: существует ли общее правило (не ограничиваясь шаблоном наблюдателя) о том, где должны жить сообщения? В каком объекте они должны жить? :) – MeLikeyCode