"Helló, Amigo! Szeretném, ha megértenéd az OOP célját. Szóval elmesélek egy történetet."

Volt egyszer egy kis cég, amely árukat szállított a világűrbe…

– Mint a Galactic Rush?

"Igen, mint a Galactic Rush. 5 ember dolgozott ott. Az első a pénzügyekkel foglalkozott, a második a raktárban, a harmadik a szállítással foglalkozott, a negyedik a reklámozásért, az ötödik pedig az egészet felügyelte."

Keményen dolgoztak és virágoztak. A cégnek jó hírneve volt, és sok pénzt keresett. Évről évre nőtt a megrendelések száma, így a vezérigazgatónak több alkalmazottat kellett felvennie. Több a raktárba, több a szállításra, egy másik pénztáros és egy marketinges az eladások növelésére.

Ekkor kezdődtek a problémák. Több volt a személyzet, és elkezdték zavarni egymást .

A marketinges az összes pénzt egy új reklámkampányra költötte, és nem hagyott készpénzt a sürgősen kiszállításra váró áruk megvásárlására.

A raktárban 10 doboz volt vadonatúj hipermeghajtókkal, amelyeket havonta egyszer kellett kiszállítani. Az egyik futár egy hipermeghajtóval elrepült, ami miatt egy másik ügyfél 10 hipermeghajtóra vonatkozó megrendelése újabb hónapot késett. Az első futár egyszerűen nem tudott arról, hogy a másik rendelést a második futár teljesítette.

Az új vezérigazgató-helyettes futárt küldött egy hajóra áruvásárlásra, és minden más a következő szabad hajóra várt. Rengeteg sürgős szállítás volt, de ez az asszisztens csak a vásárlásokat intézte, és igyekezett jól végezni a munkáját. Minél jobban teljesítette valaki a feladatait , annál jobban beleavatkozott a többibe .

A helyzet elemzése során a vezérigazgató rájött, hogy az olyan fontos erőforrásokat, mint a hajó, a készpénz és az áruk nem optimálisan költik el, hanem az "érkezési sorrendben" elv alapján. Bárki erőforrást vehet igénybe munkája elvégzéséhez, veszélyeztetve a többi alkalmazott és a vállalat termelékenységét.

Valamit tenni kellett. A vezérigazgató úgy döntött, hogy a monolitikus céget több részlegre osztja fel. Létrehozott egy szállítási osztályt, marketing osztályt, beszerzési osztályt, pénzügyi osztályt és raktározási osztályt. Most már senki sem tudta átvenni a hajót. A szállítási osztály vezetője megkapta az összes szállítási információt, és kiadta a hajót annak a futárnak, akinek a szállítása a vállalat számára a legjövedelmezőbb lenne. Ezenkívül a raktár nem engedte, hogy a futárok egyszerűen elvigyék az árut. Ők irányították a folyamatot. A pénzügyi osztály nem tudna pénzt szánni marketingre, ha tudta volna, hogy hamarosan vásárlás lesz. Minden osztálynak volt egy közéleti személyisége: az osztályvezető. Az egyes osztályok belső felépítése a saját gondja volt.Ha egy futár el akart vinni néhány árut, akkor a raktárvezetőhöz ment, nem a raktárba. Amikor új megrendelés érkezett, az a szállítási osztály vezetőjéhez ( közszemély ) érkezett, nem a futárhoz ( magánszemély ).

Más szóval, a vezérigazgató osztályokba csoportosította az erőforrásokat és a tevékenységeket , és megtiltotta másoknak, hogy beavatkozzanak az osztályok belső struktúrájába. Csak meghatározott személyekkel lehetett kapcsolatba lépni.

Az OOP szempontjából ez nem más, mint egy program objektumokra osztása. A függvényekből és változókból álló monolitikus program objektumokból álló programmá alakul. És ezek az objektumok változókat és függvényeket tartalmaznak.

"Várjon egy percet. Tehát azt mondja, hogy a probléma az volt, hogy minden alkalmazott korlátlanul hozzáfért az erőforrásokhoz, és parancsokat adhatott ki bármely másik alkalmazottnak?"

"Igen, pontosan."

"Érdekes. Bevezettünk egy kis korlátozást, de több parancsot kaptunk. És mindent jobban tudtak ellenőrizni."

"Igen. Oszd meg és uralkodj a legtisztább formájában."

"Ahogy mondtad, oszd meg és uralkodj. Erre érdemes emlékezni."