JavaRush/Курсы/Java Core/Причины появления ООП

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

Открыта

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

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

— Как Galactic Rush?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии (158)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Grigoryvvv
Уровень 28
Expert
7 августа, 21:50
08.08.2026 / 21 уровень
Anonymous #3585174
Уровень 33
28 июля 2025, 17:40
like
4el0vek3
Уровень 40
26 июля 2025, 12:24
Было уже это🙄
17 мая 2025, 11:52
Никого не смутил переход с одного типа повествования в Java Syntax Pro на другой тип повествования в Java Core? Хотя эта "сюжетка" мне нравится горааздо больше, чем непонятная борьба с галаксианскими багами и развратной Анжеликой
13 мая, 07:15
Когда JR только появился(в нем было всего 10 уровней бесплатных), в нем фигурировали персонажи из сериала "Футурама"(очень рекомендую). Далее от Футурамы отошли(думаю из-за прав на использование персонажей) и перерисовали персонажей и переписали сюжет. Если не ошибаюсь, после 10 бесплатных уровней как раз шел Java Core(10 уровней) . Сейчас к первым 10 добавились еще 10, а Java Core переехал на 20-30е уровни. Поэтому чувствуется другой стиль повествования. Лекции строились в виде диалога с Амиго(это мы, типо робот первого уровня).
Perl Developer Perl Developer
20 января 2025, 06:30
Кто-то может объяснить эти принципы разрабам ядер ОС?
Жуков Богдан Системный аналитик
19 мая 2025, 13:41
Мы поручим это тебе
Antariko
Уровень 1
6 января 2025, 18:43
У меня жёсткое чувство дежавю
{Java_Shark}
Уровень 36
14 июня 2024, 08:45
Снова освежили память)))
Roksikod
Уровень 17
Expert
13 апреля 2024, 20:23
лучшего объяснения я еще не читала. Спасибо!
15 февраля 2025, 09:39
а вот не надо было скипать вначале!!!
Денис
Уровень 26
10 апреля 2024, 17:38
А вот и Амиго) раньше он был с первых уроков
Дмитрий
Уровень 26
9 марта 2024, 20:51
Повторение конечно мать учения, но все больше кажется, что это уже заикание. Было же