Osnovni koncept OOP – apstraktni tip podataka


 

Slika 1. OOP, Objekti programa

djeluju međusobno pomoću

poruka koju međusobnoprosljeđuju.

clip_image001

Modularnim programiranjem potrebno je eksplicitno pozvati funkcije za konstrukciju i destrukciju, da bi smo manipulisali identifikatorom liste. A proceduru modula koristimo za izmjenu svakog identifikatora.

Za razliku od prethodnog modularnog programiranja, umjesto pozivanja procedura kojima smo obezbjeđivali ispravne liste identifikatora, sada trebamo samo direktno poslati poruku listi objekata. Drugim riječima svaki objekt se implementira sam od sebe sa svojim vlastitim modulom. Svaki objekt je odgovoran za inicijalizaciju i deinicijalizaciju odnosno ukidanje samog sebe bez da to programer vrši eksplicitno. Kod OOP nije potrebno eksplicitni poziv procedure za kreiranje i uništavanje.

Neki autori opisuju OOP kao programiranje apstraktnim tipovima podataka i njihovim među-odnosima. Apstraktni tip podataka je osnovnog koncepta OOP, koji je na taj način u mnogome olakšao sam programiranje.

Prva stvar sa kojom se susrećemo kada pišemo program je problem. Tipično, suočavanje sa problemom iz realnom života je u funkciji stvaranja problema. Problemi iz realnog života su jako složeni i prva stvar koju trebamo učiniti je da se pokuša problem razdvojiti na potrebne i nepotrebna detalje. Potrebno je dobiti svoju vlastitu apstrakciju, ili model problema. Ovaj proces modeliranja je poznat kao apstrakcija i ilustrovana je na slijedećoj slici.

Slika 2. kreiranje modela iz

problema pomoću apstrakcije

clip_image001[5]

Model definiše izgled problema. Ovo implicira, da model fukusiramo samo na problem koji nas zanima kao i definiranje osobina tog problema. Te osobine sastoje se u sljedećem:

– podaci koji su nam potrebni,

– operacije koje su prepoznate u problemu.

Kao primjer pretpostavimo personal zaposlenih u jednoj instituciji. Šef vam dolazi i pita vas da mu kreirate program koji manipuliše personalnim podacima nad zaposlenim. Ovo nije tačno određen problem, jer koje informacije su potrebne od personala? Koje poslove bi trebalo riješiti? Zaposleni su realne osobe, koje su okarakterisane sa puno osobina, neke od njih su sljedeće:

– ime

– datum rođenja

– oblik

– broj osiguranja

– broj sobe

– boja kose

– hobi.

Naravno nisu sve nabrojane osobine i potrebne da bi se personalni problem riješio. Samo neki od njih su određeni za problem. Ovdje je potrebno kreirati model zaposlenih za zadani problem. Ovaj model samo implicira osobine koje su potrebne popuniti zahtjevima administracije, kao što su ime, datum rođenja, i broj osiguranja. Ove osobine se zovu podaci modela ( zaposlenika).

Naravno, čisti opis nije dovoljan. Mora postojati definisane operacije s kojima će moći administracija da upravlja sa apstraktnim zaposlenicima. Npr. mora postojati operacije koje dozvoljavaju kreiranje novog zaposlenika koji dolazi u firmu; moramo odrediti operacije s kojima ćemo moći formirati apstraktnog zaposlenika. Također moramo kreirati takve operacije da one mogu manipulisati i pristupati samo podacima zaposlenika koji su povezani sa njima. Ovo dalje govori da moramo biti sigurni da su elementi podataka uvijek u korektnom stanju tj. da u svakom momentu možemo provjeriti da su podaci validni odnosno tačni.

Da sumiramo, apstrakcija je strukturiranje zamršenih problema u egzaktno definirani entitet, preko definiranja njegovih podataka i operacija. Drugim riječima ti entiteti su kombinacija podataka i operacija. Oni nisu dekuplovani jedni s drugima.

About Bahrudin Hrnjica

PhD in Mechanical Engineering, Microsoft MVP for .NET. Likes .NET, Math, Mechanical Engineering, Evolutionary Algorithms, Blogging.

Posted on 10/12/2006, in Programiranje and tagged . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s