Думаю, я отвечу на свой вопрос.Надеюсь, я получу эту милую, сладкую награду.
Подумайте об этом с точки зрения отправки вашего консультанта сотруднику клиента.Он знает, как выполнять свою работу, но он не знает, что делать, когда закончил.Вы хотите, чтобы он проявил гибкость в отношении того, что он делает дальше.
Иногда его босс отсылает его.Иногда генеральный директор (он может не знать, куда его отправить после).Иногда клиент вызывает его срочно (он точно не знает, куда его отправить).Иногда он просто берет новое задание с доски.
Он может сделать одну из следующих вещей:
вы можете сказать ему, чтобы он позвонил в головной офис, когда он закончил,и главный офис выяснит это для него.ему не нужно знать о других людях, только номер телефона головного офиса.
вы можете сказать ему, что делать, когда он закончит, прежде чем он уйдет.если он уйдет на некоторое время, его следующее задание могло бы измениться за это время.
вы могли бы сказать ему, чтобы он отправил на фейсбук, когда он закончит, головной офис будет искать его и скажет ему, что делать.Головной офис должен будет следить за большим количеством постов в Facebook от всех своих консультантов.
вы можете сказать его начальнику, чтобы он ответил на его звонок, когда он закончил, но тогда его руководитель долженбыть в офисе, и, возможно, он сменит начальников.
Лично я бы передал функцию обратного вызова.Если этот обратный вызов нулевой, вызываемый должен спросить приложение, что делать.Это дает вам некоторую гибкость, а также позволяет родительскому процессу управлять всем, а не полагаться на одну большую функцию в приложении.
Это было бы равносильно предоставлению консультанту номера следующего клиента, который позвонит, когда он закончит.Если он не получает номер, он звонит в головной офис.
Вы также можете использовать событие, и это неплохая идея.Единственная проблема может быть, если несколько объектов прослушивают это событие, может произойти что-то неприятное.