"Hej, Amigo! Jeg vil have dig til at forstå formålet med OOP. Så jeg vil fortælle dig en historie."
Engang var der et lille firma, der sendte varer til det ydre rum...
"Som Galactic Rush?"
"Ja, ligesom Galactic Rush. 5 personer arbejdede der. Den første stod for økonomi, den anden arbejdede på lageret, den tredje stod for forsendelsen, den fjerde stod for annoncering, og den femte overvågede det hele."
De arbejdede hårdt og blomstrede. Virksomheden havde et godt ry og tjente mange penge. Hvert år steg antallet af ordrer, så den administrerende direktør måtte ansætte flere medarbejdere. Flere til lageret, flere til at stå for forsendelsen, en anden kasserer og en marketingmedarbejder til at øge salget.
Det var her problemerne begyndte. Der var mere personale, og de begyndte at blande sig i hinanden .
Markedsføreren brugte alle pengene på en ny reklamekampagne og efterlod ingen kontanter til at købe de varer, der skulle sendes.
Lageret havde 10 kasser med helt nye hyperdrev, der skulle sendes en gang om måneden. Én kurer fløj afsted med ét hyperdrev, hvilket gjorde, at en anden kundes ordre på 10 hyperdrev blev forsinket endnu en måned. Den første kurer vidste simpelthen ikke om den anden ordre blev opfyldt af den anden kurer.
Den nye assisterende administrerende direktør sendte en kurer på et skib for at købe varer, og alt andet ventede på det næste ledige skib. Der var masser af hasteleverancer, men denne assistent klarede kun indkøb og prøvede at gøre sit arbejde godt. Jo bedre én person udførte sine pligter, jo mere blandede han sig i resten .
Ved at analysere situationen indså den administrerende direktør, at vigtige ressourcer som skibet, kontanter og varer ikke blev brugt optimalt, men snarere efter "først til mølle"-princippet. Enhver kunne tage ressourcer til at udføre deres arbejde, hvilket truede produktiviteten for resten af medarbejderne og virksomheden.
Noget måtte gøres. Den administrerende direktør besluttede at opdele den monolitiske virksomhed i flere afdelinger. Han oprettede en forsendelsesafdeling, marketingafdeling, indkøbsafdeling, økonomiafdeling og lagerafdeling. Nu kunne ingen bare tage skibet. Lederen af shippingafdelingen modtog alle forsendelsesoplysninger og udstedte skibet til den kurer, hvis levering ville være mest rentabel for virksomheden. Derudover lod lageret ikke kurerer blot tage varerne. De styrede processen. Økonomiafdelingen kunne ikke afsætte penge til markedsføring, hvis den vidste, at der snart ville være et køb. Hver afdeling havde én offentlig person: afdelingslederen. Den interne struktur i hver afdeling var dens eget anliggende.Hvis en kurer ville tage nogle varer, ville han gå til lagerchefen, ikke til lageret. Når en ny ordre kom ind, gik den til lederen af forsendelsesafdelingen ( offentlig person), ikke kureren ( privatperson ).
Med andre ord grupperede den administrerende direktør ressourcerne og handlingerne i afdelinger og forbød andre at blande sig i interne afdelingsstrukturer. Kun bestemte personer kunne kontaktes.
Med hensyn til OOP er dette intet andet end at opdele et program i objekter. Et monolitisk program, bestående af funktioner og variable, konverteres til et program bestående af objekter. Og disse objekter indeholder variabler og funktioner.
"Vent et øjeblik. Så du siger, at problemet var, at hver medarbejder havde ubegrænset adgang til ressourcer og kunne udstede kommandoer til enhver anden medarbejder?"
"Ja præcis."
"Interessant. Vi indførte en lille begrænsning, men vi modtog flere ordrer. Og de var i stand til at holde bedre styr på det hele."
"Ja. Del og hersk i sin reneste form."
"Ligesom du sagde, del og hersk. Det er noget at huske."
GO TO FULL VERSION