Считается, что объекты в системе работают совместно и при этом обмениваются сообщениями. Один объект посылает сообщение о необходимости выполнить какую-либо операцию другому, а принявший это сообщение объект выполняет нужную операцию.
Телевизор и пульт дистанционного управления представляют собой прекрасный интуитивный пример из окружающего мира. Если человек хочет посмотреть телевизор, ему необходимо вначале отыскать пульт, расположиться в любимом кресле и нажать кнопку включения. Что при этом происходит? Объект пульта дистанционного управления отправляет сообщение о включении (буквально!) объекту телевизора. Объект телевизора принимает это сообщение, зная, как выполнить операцию включения, и включается. Чтобы посмотреть другой канал, нужно нажать соответствующую кнопку на пульте. При этом объект пульта дистанционного управления передает другое сообщение — сменить канал — объекту телевизора. Пульт дистанционного управления может также обмениваться с телевизором другими сообщениями, предназначенными для изменения громкости, отключения звука или настройки изображения.
Давайте ненадолго вернемся к интерфейсам. Большинство действий, выполняемых с помощью пульта дистанционного управления, можно также осуществить по-другому: покинуть кресло, подойти к телевизору и понажимать кнопки на самом аппарате. (Иногда это необходимо проделывать!) Интерфейс телевизора (набор кнопок), очевидно, не такой же, как у пульта (инфракрасный приемник). На рис. 2.7 показаны указанные отличия.
Рис. 2.7. Пример передачи сообщения от одного объекта другому. Объект пульта дистанционного управления передает сообщение о включении объекту телевизора. Объект телевизора принимает сообщение через свой интерфейс — инфракрасный приемник