undefined

Причины появления ООП

Java Core
1 уровень , 2 лекция
Открыта

— Привет, Амиго! Я хочу, чтобы ты понял назначение ООП. Для этого я расскажу тебе одну историю.

Была небольшая компания, которая занималась доставкой товаров в космосе…

— Как Galactic Rush?

— Да, как Galactic Rush. В ней работало 5 человек. Один занимался финансами, второй работал на складе, третий выполнял доставку, четвертый руководил рекламой, а пятый управлял всем этим.

Они были очень старательными, и все у них получалось. Компания имела хорошую репутацию и зарабатывала много денег. Но заказов с каждым годом было все больше, так что директору пришлось нанимать дополнительных сотрудников. Несколько на склад, несколько на доставку, еще одного кассира и рекламщика для расширения рынка.

И тут начались проблемы. Людей стало больше, и они начали друг другу мешать.

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

На складе есть 10 коробок с новенькими гипердвигателями, которые поставляют раз в месяц. Курьер полетел отвозить один гипердвигатель, и заказ на 10 гипердвигателей от другого клиента вынужден ждать еще месяц. Первый курьер просто не знал о другом заказе, который выполняет второй курьер.

Новый помощник директора отправляет курьера на корабле для закупки товара, и все остальные ждут, пока появится доступный корабль. Есть куча срочных доставок, но этот помощник заведует только закупками и старается хорошо выполнять свою работу. Чем лучше человек выполнял свои обязанности, тем больше он мешал остальным.

Пытаясь проанализировать ситуацию директор понял, что такие важные ресурсы, как корабль, наличность и товар расходуются не оптимально, а по принципу «кто первый встал – того и тапки». Любой мог взять нужный всем ресурс для своей работы, поставив при этом под удар остальных сотрудников, да и всю компанию в целом.

Нужно было что-то делать, и директор решил разделить монолитную компанию на несколько отделов. Появился отдел доставки, отдел маркетинга, отдел закупок, финансовый отдел и отдел запасов. Теперь уже никто не мог просто так взять корабль. Директор отдела доставки получал всю информацию о доставках и выдавал корабль тому курьеру, чья доставка была выгоднее для компании. Склад тоже не разрешал любому курьеру взять любой товар, а контролировал этот процесс. Финансовый отдел мог не дать денег на маркетинг, если знал, что скоро будет закупка. У каждого отдела было одно публичное лицо – его начальник. Внутреннее устройство каждого отдела было его внутренним делом. Если курьер хотел получить товар, он шел к начальнику склада, а не на склад. Если появлялась новая заявка, ее получал директор отдела доставки (public person), а не курьер (private person).

Другими словами, директор объединил в группы (отделы) ресурсы и действия над нимиа также запретил другим вмешиваться во внутреннюю структуру отделовКонтактировать можно было строго с определенным лицом.

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

— Подожди. Проблема была в том, что любой сотрудник мог бесконтрольно работать с любым ресурсом и отдавать команды любому человеку?

— Да, именно так.

— Интересно. Мы ввели небольшое ограничение, но получили больше порядка. А также смогли лучше контролировать все это.

— Да. Разделяй и властвуй в чистом виде.

— Как ты красиво сказала – разделяй и властвуй. Нужно будет запомнить.

Комментарии (86)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Денис Измайлов 11 уровень, Чебоксары
27 апреля 2021
И снова, замечательная аналогия, но не рассказали о минусах такого подхода - БЫСТРОДЕЙСТВИИ. Когда для того чтобы просто вытереть с пола разлитый кофе, надо сначала написать заявку в АХО, а те в отдел закупок отправят заявку на тряпки, котоорую закупки приобретут, выдадут в АХО, а те отправят человека вытереть лужу. И к тому моменту как "клинингменеджер" придет вытирать ружу, она уже банально ВЫСОХЛА :)
Maks Panteleev 25 уровень, Москва
26 марта 2021
Пытаясь проанализировать ситуацию директор понял, что такие важные ресурсы, как корабль, наличность и товар расходуются не оптимально, а по принципу «кто первый встал – того и тапки». Любой мог взять нужный всем ресурс для своей работы, поставив при этом под удар остальных сотрудников, да и всю компанию в целом. я подумал что это подводка к многопотоку)))
Olexandr Dombrovskyi 25 уровень, Киев
25 января 2021
эта статья уже была раньше в "Java Syntax", зачем ещё раз писать одно и тоже слово в слово??
Vladimir 16 уровень, Нижний Новгород
19 января 2021
Данная лекция - зря потраченное время и материя... Как в плохом сериале, когда надо выпустить серию, а как заполнить это время особо нет идей у создателей.
Даниил Александрович 31 уровень, Тамбов
12 января 2021
ООП Хорошо, когда ее не лепят даже туда где она излишнее раздувание кода.
Антон 20 уровень, Москва
13 декабря 2020
Что-то в тексте лекции методы стали функциями. А я так долго переучивал себя, что функции в Java - это методы)
🦔 Виктор 20 уровень, Москва Expert
6 декабря 2020
Такая себе история, в худшем репертуаре ДЖРШ, лучше лишний раз перечитать годную стать про принципы ООП из предыдущей лекции и двигаться дальше. Всё получится!
Алексей Мирный 41 уровень, Москва
20 октября 2020
Появился жесткий дефицит темной материи((
Dmitry 20 уровень
2 октября 2020
разделяй и властвуй eto drugoe
Вадик Мельниченко 26 уровень, Киев
4 сентября 2020
Подумать только - ещё на прошлом модуле я хотел написать википедию для котов, а теперь я правая рука Илона Маска )