При объектно-ориентированном подходе к проектированию и программиро­ванию часто бывает удобно рассматривать программу как набор независимых объектов, обменивающихся сообщениями. Особенно удобно это для органи­зации среды взаимодействия с пользователем, где источниками сообщений могут служить внешние устройства, такие как мышь или клавиатура, однако подобная организация программы может оказаться удобной и в других си­туациях. Для того чтобы объекты могли обмениваться сообщениями, необхо­димо, чтобы в программе присутствовал специальный объект- диспетчер сообщений, который мог бы контролировать работу всей системы и переда­вать сообщения от одних объектов к другим. Именно таким образом построе­ны многие современные операционные системы, например MS Windows, в которой одни объекты (окна) посылают сообщения другим окнам, исполь­зуя для этого системные вызовы. В роли диспетчера сообщений в MS Windows выступает сама операционная система. Подобным образом построены и мно­гие другие операционные системы и их подсистемы. В этой главе мы рас­смотрим, каким образом можно организовать свой собственный диспетчер сообщений, и используем его для вычисления различных конечных сумм не­сколько необычным способом.