„Здравей, Амиго! Искам да разбереш целта на ООП. Затова ще ти разкажа една история.“

Имало едно време малка компания, която изпращала стоки в космоса...

„Като Galactic Rush?“

"Да, като Galactic Rush. Там работеха 5 души. Първият се занимаваше с финанси, вторият работеше в склада, третият се занимаваше с доставката, четвъртият отговаряше за рекламата, а петият контролираше всичко."

Те работиха усилено и процъфтяха. Компанията имаше добра репутация и направи много пари. Всяка година броят на поръчките се увеличаваше, така че главният изпълнителен директор трябваше да наеме повече служители. Няколко за склада, няколко за доставката, друг касиер и маркетолог за увеличаване на продажбите.

Тогава започнаха проблемите. Имаше повече персонал и те започнаха да си пречат .

Маркетологът похарчи всички пари за нова рекламна кампания, без да остави пари в брой за закупуване на стоките, които спешно трябваше да бъдат изпратени.

В склада имаше 10 кашона с чисто нови хипердвигатели, които се изпращаха веднъж месечно. Един куриер излетя с един хипердрайв, което доведе до забавяне на поръчката на друг клиент за 10 хипердрайва с още един месец. Първият куриер просто не знаеше, че другата поръчка се изпълнява от втория куриер.

Новият помощник главен изпълнителен директор изпрати куриер на кораб, за да закупи стоки, а всичко останало чакаше следващия свободен кораб. Имаше много спешни доставки, но този асистент управляваше само покупките и се опитваше да върши работата си добре. Колкото по-добре един човек изпълняваше задълженията си , толкова повече пречеше на останалите .

При анализа на ситуацията главният изпълнителен директор осъзна, че важни ресурси като кораб, пари в брой и стоки не се изразходват оптимално, а по-скоро на принципа „първи дошъл, първи обслужен“. Всеки може да вземе ресурси, за да изпълнява работата си, застрашавайки производителността на останалите служители и компанията.

Трябваше да се направи нещо. Главният изпълнителен директор реши да раздели монолитната компания на няколко отдела. Той създава отдел за доставка, отдел за маркетинг, отдел за покупки, отдел за финанси и отдел за складиране. Сега никой не можеше просто да вземе кораба. Ръководителят на отдела за доставка получи цялата информация за доставката и издаде кораба на куриера, чиято доставка би била най-изгодна за компанията. Освен това складът не позволява на куриерите просто да вземат стоките. Те контролираха процеса. Финансовият отдел не можеше да отдели пари за маркетинг, ако знаеше, че скоро ще има покупка. Всеки отдел имаше една обществена фигура: ръководителят на отдела. Вътрешната структура на всеки отдел беше негова грижа.Ако куриер искаше да вземе няHowва стока, той отиваше при началника на склада, а не в склада. Когато постъпи нова поръчка, тя отиде при ръководителя на отдела за доставка ( публично лице), а не при куриера ( частно лице).

С други думи, изпълнителният директор групира ресурсите и действията в отдели и забрани на другите да се намесват във вътрешните структури на отдела. Можеше да се осъществи контакт само с конкретни хора.

От гледна точка на ООП това не е нищо друго освен разделяне на програма на обекти. Монолитна програма, състояща се от функции и променливи, се преобразува в програма, състояща се от обекти. И тези обекти съдържат променливи и функции.

„Чакай малко. Значи искаш да кажеш, че проблемът е бил, че всеки служител е имал неограничен достъп до ресурси и е можел да издава команди на всеки друг служител?“

"Да точно."

"Интересно. Въведохме малко ограничение, но получихме повече поръчки. И те успяха да поддържат по-добър контрол върху всичко."

"Да. Разделяй и владей в най-чистата му форма."

„Точно Howто казахте, разделяй и владей. Това е нещо, което трябва да запомните.“