"Hej, Amigo! Jag vill att du ska förstå syftet med OOP. Så jag ska berätta en historia för dig."

En gång fanns det ett litet företag som fraktade varor till yttre rymden...

"Som Galactic Rush?"

"Ja, som Galactic Rush. 5 personer arbetade där. Den första skötte ekonomin, den andra arbetade på lagret, den tredje skötte frakten, den fjärde var ansvarig för reklam och den femte övervakade det hela."

De jobbade hårt och blomstrade. Företaget hade ett gott rykte och tjänade mycket pengar. Varje år ökade antalet beställningar, så VD:n fick anställa fler medarbetare. Flera till lagret, flera som sköter frakten, ytterligare en kassörska och en marknadsförare för att öka försäljningen.

Det var då problemen började. Det fanns mer personal och de började störa varandra .

Marknadsföraren spenderade alla pengar på en ny reklamkampanj, och lämnade inga pengar till hands för att köpa de varor som brådskande skulle skickas.

Lagret hade 10 lådor med helt nya hyperdrivar som skulle skickas en gång i månaden. En kurir flög iväg med en hyperdrive, vilket gjorde att en annan kunds beställning på 10 hyperdrives försenades ytterligare en månad. Den första kuriren visste helt enkelt inte om den andra beställningen fullföljdes av den andra kuriren.

Den nya biträdande VD:n skickade en kurir på ett fartyg för att köpa varor, och allt annat väntade på nästa tillgängliga fartyg. Det fanns gott om brådskande leveranser, men den här assistenten skötte bara inköp och försökte göra sitt jobb bra. Ju bättre en person utförde sina uppgifter, desto mer störde han resten .

Vid analys av situationen insåg VD:n att viktiga resurser som fartyget, kontanter och varor inte spenderades optimalt, utan snarare enligt "först till kvarn"-principen. Vem som helst kan ta resurser för att utföra sitt arbete, vilket hotar produktiviteten för resten av de anställda och företaget.

Något måste göras. VD:n beslutade att dela upp det monolitiska företaget i flera avdelningar. Han skapade en fraktavdelning, marknadsavdelning, inköpsavdelning, ekonomiavdelning och lageravdelning. Nu kunde ingen bara ta skeppet. Chefen för sjöfartsavdelningen fick all fraktinformation och utfärdade fartyget till den kurir vars leverans skulle vara mest lönsam för företaget. Dessutom lät lagret inte kurirer bara ta varorna. De kontrollerade processen. Ekonomiavdelningen kunde inte avsätta pengar till marknadsföring, om den visste att det skulle bli ett köp snart. Varje avdelning hade en offentlig person: avdelningschefen. Den interna strukturen på varje avdelning var sin egen angelägenhet.Om en kurir ville ta några varor, gick han till lagerchefen, inte till lagret. När en ny beställning kom in gick den till chefen för fraktavdelningen ( offentlig person), inte kuriren ( privatperson ).

Med andra ord grupperade VD:n resurserna och åtgärderna i avdelningar och förbjöd andra att störa interna avdelningsstrukturer . Endast specifika personer kunde kontaktas.

När det gäller OOP är detta inget annat än att dela upp ett program i objekt. Ett monolitiskt program, bestående av funktioner och variabler, omvandlas till ett program bestående av objekt. Och dessa objekt innehåller variabler och funktioner.

"Vänta lite. Så du säger att problemet var att varje anställd hade obegränsad tillgång till resurser och kunde utfärda kommandon till vilken annan anställd som helst?"

"Ja exakt."

"Intressant. Vi införde en liten begränsning, men vi fick fler beställningar. Och de kunde ha bättre kontroll över allting."

"Ja. Dela och erövra i sin renaste form."

"Precis som du sa, dela och erövra. Det är något att komma ihåg."