536 Часть IV. Новые возможности C++

разветвляется в почти неуправляемое дерево президентов, вице-президентов, отделов, менеджеров и всевозможных видов служащих — от уборщиц до торговых агентов, бухгалтеров, работников отдела кадров и т. д. Если вы студент, то, вероятно, ближе знакомы с академическими факультетами, профилирующими дисциплинами, аспирантами, студентами, выпускными классами и т. д. Но даже если вы не работаете и не учитесь, то все равно вы не можете избежать иерархии — у вас, скорее всего, есть семья, будь то мать, отец, жена, ребенок, брат, сестра, бабушка или дедушка. Суть такова:

все мы участвуем, по крайней мере, в одной иерархии; наши роли — кто мы и что мы есть — в значительной степени определяются тем местом, которое мы занимаем в иерархии.

Рассмотрим четырех служащих машиностроительной фирмы: уборщицу, инженера, начальника инженерного отдела и заместителя директора по производству. Если попросить вас начертить приблизительную иерархию для этих четырех человек из машиностроительной фирмы, вы, вероятно, воспроизведете схему, подобную приведенной на рис. 20.1.

Рис. 20.1

Предварительный набросок иерархии из четырех служащих машиностроительной фирмы

h05361.jpg

Вы видите, что инженер отвечает перед начальником инженерного отдела, а гот, в свою очередь, отвечает перед заместителем директора по производству. Уборщица не отвечает перед начальником инженерного отдела, но она, вероятно, косвенно подчиняется заместителю директора по линии, которая в этом примере только намечена. Это один из типов иерархии — схема организации управления в некоторых компаниях — чтобы вскарабкаться по корпоративной лестнице, вам нужно начать снизу и проделать путь наверх.

Однако в объектно-ориентированном программировании нам интересна другая иерархическая структура. Давайте теперь посмотрим, какие роли являются общими для этих четырех человек, а какие отличают одного от другого.

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