• Objektumorientált (OO) programozási paradigma – Adatorientalt; adatok es a rajtuk vegezhet m veletek osszerendelese objektumokka; uzenetaramlas az egyes objektumok kozott; a modell nem feltetelez soros vegrehajtast – Adatfolyamelv modell • Adatfolyamelv programozasi paradigma – Adatorientalt (bemen adatokbol kimen adatok); adatok kiertekelese rendelkezesre allaskor Szamitasi modellek es programozasi paradigmak (1) 7 2006. V1.0 szeptember 12. 7
1
AAO 1. félév EA - PDF 01 Adatstruktúrák, algoritmusok, objektumok 1. Szamitasi modellek es programozasi paradigmak 2 2006. V1.0 szeptember 12. 2 Modellezési alapelvek A modellezés celja a vilag minel teljesebb kor megertese – Elemek, folyamatok, osszefuggesek, viszonyok A modellezes soran a fenti cel erdekeben az ember: – abrazolasokat keszit a vilagrol, majd – lekepezi a vilag egyes szeleteit az altala hasznalt eszkozokben (ennek soran egy vagy tobb szempontot kiemel mas szempontokkal szemben). A modellezes celja 3 2006. V1.0 szeptember 12. 3
Programozási megoldások • Deklarativ szamitasi modellek („mit akarunk kiszamitani”) – Funkcionalis/applikativ szamitasi modell • Funkcionalis programozasi paradigma – Fuggvenyek redukcioja automatikus behelyettesitesekkel – Pelda (ML programozasi nyelv) – Logikai alapu szamitasi modell • Logikai programozasi paradigma – Egymassal osszefuggesben lev allitasok levezetese (rezolucio) mintaillesztessel es kovetkeztetesekkel – Pelda (Prolog programozasi nyelv) Szamitasi modellek es programozasi paradigmak (2) fun factorial 0 = 1 | factorial n = n * factorial(n-1) testvér(X,Y) :- szül (Z,X), szül (Z,Y). szül (X,Y) :- apa(X,Y). szül (X,Y) :- anya(X,Y). anya(Klára, Jancsi). apa(Péter, Jancsi). apa(Péter, Ilona). apa(József, Péter). ?- testvér(Jancsi, Ilona) igen. 8 2006. V1.0 szeptember 12. 8
Modellezési alapelvek • Absztrakcio – Lenyeg kiemelese, a jellegzetessegek leegyszer sitett lekepezese • Megkulonboztetes – Elemek meghatarozasa, elemek es tulajdonsagaik szetvalasztasa • Osztalyozas – Elemek tipusokba, csoportokba sorolasa • Altalanositas es specializacio – Elemtipusok b vitese es sz kitese, elemhierarchiak kialakitasa • Kapcsolatok meghatarozasa – Kulonboz kapcsolattipusok meghatarozasa, elemek kozotti kapcsolatok felallitasa • Ismeretseg, leszarmazas, tartalmazas, kompozicio... A modellezes folyamata 4 2006. V1.0 szeptember 12. 4
Programozási megoldások A szamitasi modellek, szamitogep-architekturak es programozasi nyelvek osszefuggese Szamitasi modell Programozasi nyelv Szamitogep-architektura Specifikacios eszkoz Megvalositasi eszkoz Vegrehajto eszkoz 9 2006. V1.0 szeptember 12. 9
Programozási paradigmák • Paradigma: szemleletmod; modellezesi, problemadefinicios es problemamegoldasi modszer – Programozasi paradigma: a szamitogep konkret feladatok megoldasara torten felhasznalasanak, iranyitasanak modja A paradigma fogalma 5 2006. V1.0 szeptember 12. 5
Programozási megoldások fejl dése Kulonboz szamitasi modelleken alapulo architekturak versenye 1950 1960 1970 1980 1990 2000 Neumann-fele szamitasi modell Adatfolyamelv szamitasi modell Funkcionalis/applikativ szamitasi modell Logikai alapu szamitasi modell Elemi m veletek szintjen parhuzamos modellek 10 2006. V1.0 szeptember 12. 10
Programozási paradigmák • A programozasi nyelveket altalaban egy-egy paradigma ihleti – Celjuk egy adott programozasi paradigma legfontosabb jellemz inek megvalositasa – A programozasi paradigmak egy-egy szamitasi modellre epulnek • A programozasi nyelvek absztrakcios szintje folyamatosan n – A kiindulopont a szamitogep konkret hardvermegvalositasa volt – Minden uj paradigma noveli az absztrakcio szintjet • Neha „holtagak” is keletkeznek, igy egyes magasabb absztrakcios szintet kepvisel nyelvek „kihalnak”, de a fenti allitas a f fejl desi iranyokra is igaz Programozasi paradigmak es programozasi nyelvek 6 2006. V1.0 szeptember 12. 6
A Neumann-architektúra A Neumann-architektura alapvet felepitese Adat/utasitas Vezerles ALU Bemenet Kimenet Memoria Vezerles 11 2006. V1.0 szeptember 12. 11
Programozási megoldások • Imperativ szamitasi modellek („hogyan szamitsuk ki”) – Turing-modell • Alan Turing nevehez f dik (1936) • Nincs hozza kapcsolodo programozasi paradigma (csak elvi jelent sege van) – Neumann-modell • Neumann Janos nevehez f dik (1945) • Proceduralis/strukturalt programozasi paradigma – Utasitasorientalt; az egyes m veletek megismetelhet k; tobbszoros ertekadas; valtozok; alapvet en soros vegrehajtast feltetelez modell – Objektumorientalt modell
A Neumann-architektúra • Utasitasok es adatok tarolasa egy kozos memoriaban – Adatok tarolasa nevesitett valtozokban (elkulonitett memoriarekeszek)
1
– Nincs kuls megkulonboztetes az utasitas es az adat kozott, csak az aktualis programallapot dont az ertelmezesr l – Az utasitasok sorozata a programbol, kuls beavatkozas nelkul is modosithato • Folyamatos, ciklikus programvegrehajtas – A vegrehajtas a memoria els rekeszet l indul, majd ha elerte a memoria veget, ismet az els rekeszt l folytatodik • Felteteles es feltetel nelkuli vezerlesatadas – „A kovetkez utasitas vegrehajtasa fuggjon az el eredmenyet l” – Megismetelhet m veletek, ertekadasok • Soros, szinkron m kodes A Neumann-architektura f bb jellemz i 12 2006. V1.0 szeptember 12. 12
A szoftverkrízis 3. A szoftver rendkivul jol formalhato „nyersanyag” – Szinte nincsenek fizikai korlatok • A szoftver nem fizikai (anyagi) jelleg • A szoftver el allitasa alapvet en nem jar kozvetlen fizikai nyersanyagigennyel • A szoftver, mint er forras mennyisege nem korlatos (vegtelenul tobbszorozhet ) • A szoftvernek alapvet en nem kell alkalmazkodnia kuls korulmenyekhez – Viszonylag keves a jogi korlat • Ezen a teren igen gyors (es sokszor onkenyes) a valtozas – Barmilyen algoritmus es barmilyen adatstruktura elkepzelhet , felepithet , modosithato Kihivasok a szoftverfejlesztes modszereivel szemben 5 V1.1 5
A Neumann-architektúra Az ENIAC szamitogep (1946)
A szoftverkrízis 4. A programok min segi bonyolultsaga folyamatosan novekszik – A szoftver eredend en osszetett szellemi alkotas – Nincsenek, illetve nehezen onthet k formaba jelent sebb ismetl elemek • Tervezesi mintak • „Tudasinverzio” – A m kodesi allapotok szama rendkivul magas • Osszetettebb programok elvi helyessegenek bizonyitasa egyel re nem lehetseges • A teljes kor teszteles ezert szinte lehetetlen – Rendszeresek es gyakoriak a valtoztatasi igenyek • A fejleszt k reszer l (hibajavitas, platformvaltas, fejleszt rendszervaltas...) • A felhasznalok reszer l (hibajavitas, uj funkciok, funkcionalis modositasok...) Kihivasok a szoftverfejlesztes modszereivel szemben 6 V1.1 6
PDF 02 1
Adatstruktúrák, algoritmusok, objektumok 2. Az objektumorientalt programozasi paradigma 2 V1.1 2 Internet Komponensalapu rendszerek RAD programozas Online terjesztes Kotegelt rendszerek Egyedi szoftver Nincs terjesztes Tobbfelhasznalos rendszerek Valos idej megoldasok Adatbaziskezeles Szoftvertermekek Elosztott rendszerek Beagyazott rendszerek Olcsobb hardver Hagyomanyos terjesztes Asztali rendszerek Szakert i rendszerek Parhuzamos programozas Neuralis halozatok A szoftverkrízis 1. A szoftveres megoldasok szerepe folyamatosan er sodik – A szoftverek felhasznalasi aranya (meg mindig) igen gyorsan n Kihivasok a szoftverfejlesztes modszereivel szemben 1950 1960 1970 1980 1990 2000 3 V1.1 3
A szoftverkrízis 5. Az ember attekint kepessege korlatos – Teljesen automatizalt szoftverel allitasra egyel re nincs mod – A bonyolultsag ujra es ujra kezelhetetlenul magas szintet er el • A szoftverhibak kovetkezmenyei egyre sulyosabbak lehetnek Kihivasok a szoftverfejlesztes modszereivel szemben Folyamatosan uj megoldasokra van szukseg az egyre novekv absztrakcios szint es bonyolultsag eredmenyes, hatekony es biztonsagos kezelesehez 7 V1.1 7 Procedurális/strukturált program • A problemat az algoritmus (a kód) oldalarol kozeliti meg – A szukseges funkciok meghatarozasa (funkcionalis dekompozicio) – A programvegrehajtas (vezerles) pontos menetenek leirasa – A funkciok szamara szukseges adatstrukturak meghatarozasa – A problema megoldasat a funkciok egymas utan, a megfelel sorrendben torten vegrehajtasa adja meg • Jellemz k: – A fuggvenyek definicioja hatarozza meg a program szerkezetet – Globalis adatstrukturak – Egy un. „f program” fogja ossze, amely „fuggvenyeket” „hiv meg” • A f program komoly szerepet jatszik es gyakran igen bonyolult – A vegrehajtas menetet szigoruan megszabja a megirt programkod Definicio es jellemz k 8 V1.1 8
A szoftverkrízis 2. A szoftverekkel szembeni elvarasok egyre magasabbak – Az elet mind tobb teruleten alkalmazunk szoftveres megoldasokat • Tudomany, oktatas, ipar, ugyvitel, bankszektor, allamigazgatas, otthonok... – Az olcsobbodo hardver egyre szelesebb retegek szamara elerhet • Az „atlagos felhasznalo” szamitastechnikai ismereteinek szintje rohamosan csokken – A hardver teljesitmenye rendkivul gyorsan novekszik • A fentiekb l kovetkez en az ar/teljesitmeny arany meg gyorsabban javul – Ezzel parhuzamosan a szoftver funkciogazdagsagaval, sebessegevel, kenyelmevel, hasznalhatosagaval kapcsolatos kovetelmenyek folyamatosan emelkednek • A szoftver fejl desi uteme egyre jobban „lemarad” a hardver fejl desi uteme mogott Kihivasok a szoftverfejlesztes modszereivel szemben 4 V1.1 4
Procedurális/strukturált program Tipikus felepites program Almodul Almodul Almodul Almodul Almodul Almodul Almodul 9 V1.1 9
2
• Az objektum allapotanak modositasa • Uzenetvaltas 3. alapelv: Adatrejtés 14 V1.1 14
Objektumorientált program • A problemat az adatok oldalarol kozeliti meg – A szukseges absztrakt rendszerelemek meghatarozasa – A fenti rendszerelemek adatainak es (az adatokkal vegezhet ) absztrakt m veleteinek meghatarozasa, majd ezek osszerendelese • Ezzel csoportokba („tipusokba”) soroljuk az egyes elemeket – A problema megoldasat az egyes objektumok kozotti kommunikacio, az egyes m veletek allapotvaltozasoktol fugg vegrehajtasa adja meg • Az objektumok kapcsolodasi felulettel rendelkeznek, melynek segitsegevel uzeneteket valtanak egymassal • Jellemz k: – Az egyes objektumok magukban foglaljak az algoritmusokat • Minden objektum a problema egy reszet irja le es magaban foglalja a reszfeladat megoldasahoz tartozo algoritmikus elemeket – A f program jelent sege igen csekely • Gyakorlatilag csak inditasi pontkent szolgal, lenyegi funkciot altalaban nem lat el Definicio es jellemz k 10 V1.1 10
Az OO paradigma alapelvei • A mar meglev objektumtipusok alapjan keszithetunk uj tipusokat, melyek rendelkeznek az „ stipus” tulajdonsagaival – Ez egy specializacios m velet („szarmaztatas”) • A „leszarmazottak” „oroklik” az stipus tulajdonsagait – A leszarmazottak b vithetik, esetenkent akar sz kithetik az stipus allapotteret, illetve m veleteit – Teljes leszarmazasi hierarchiakat is letrehozhatunk – Kivalo lehet seg a kozos tulajdonsagok, m veletek osszevonasara es ujrahasznositasara • Az alapelv kovetkezetes alkalmazasaval elerhet , hogy a mar megvalositott funkcionalitas kes bb a megvalositas reszleteinek ismerete nelkul is felhasznalhato legyen – Jol atgondolt el zetes tervezest igenyel 4. alapelv: Öröklés 15 V1.1 15 Az OO paradigma alapelvei • A kulonboz , egymasbol szarmazo objektumtipusok hasonlo veletei a konkret objektumtol fugg en mas-mas konkret megvalositassal rendelkezhetnek – Ugyanaz a m velet nemileg elter lehet az stipus es a leszarmazott tipus eseteben – Az alapelv lehet seget teremt ra, hogy azonos nevvel hivatkozzunk az azonos celu, de a leszarmazasi hierarchia kulonboz szintjein masmas megvalositast kivano m veletekre • Az egyes stipusok leszarmazottai mindenre alkalmasak, amire az adott stipus alkalmas volt – Minden olyan helyzetben es funkcioban, ahol az stipus szerepelhet, annak barmely leszarmazottja is szerepelhet 5. alapelv: Többalakúság 16 V1.1 16
Objektumorientált program Tipikus felepites Obj Obj Obj Obj Obj Obj Obj Obj Obj Obj Obj Obj Obj Obj 11 V1.1 11 Az OO paradigma alapelvei • Meghatarozzuk a szoftverrendszer absztrakt elemeit • Meghatarozzuk az elemek allapotteret – Adatelemek • Meghatarozzuk az elemek viselkedesmodjat – Funkciok vegrehajtasa – Allapotvaltoztatasok • Meghatarozzuk az elemek kozotti kapcsolattartas feluleteit es protokolljat – Uzenetvaltasok tipusa – Pontosan definialt, megbizhato kapcsolodasi feluletek ...mindezt a megvalositas konkret reszleteinek ismerete nelkul. 1. alapelv: Absztrakció 12 V1.1 12
Az OO paradigma alapelvei • A mar megvalositott objektumtipusokat kesz (binaris) formaban mas programokban is felhasznalhatjuk – Jo tervezes es dokumentalas eseten az objektumok nyilvanos adatai es veletei elegend ek a kes bbi felhasznalashoz • Szintaktikai b vitesekkel (pl. „tulajdonsagok”, „esemenyek”) kenyelmesebbe tehet a kuls felhasznalas – Az egyes objektumtipusokat egymasba agyazva osszetettebb tipusokat hozhatunk letre – A kesz, ujrafelhasznalhato objektumtipusokat csoportokba fogva akar nagyobb „szoftver-epit elemeket” (komponenseket es komponensgy jtemenyeket) is letrehozhatunk • A korabban emlitett alapelvekre epitve a kodujrafelhasznalas lehet sege jelenti az igazi attorest a szoftvertechnologiaban 6. alapelv: Kódújrafelhasználás
Az OO paradigma alapelvei • Az objektumok adatait es a rajtuk vegezhet m veleteket szoros egysegbe zarjuk – Az adatok csak a definialt m veletek segitsegevel erhet k el – Mas m veletek nem vegezhet k az objektumokon • Az egysegbezaras vedi az adatokat a teves modositasoktol 2. alapelv: Egységbezárás 13 V1.1 13
PDF 03
Az OO paradigma alapelvei • Az absztrakciok megvalositasanak reszleteit elrejtjuk a „kulvilag” el l • Az objektumokon belul elkulonitjuk a bels (privat) es a kuls (nyilvanos) adatokat es m veleteket – A privat adatok es m veletek a konkret megvalositashoz szuksegesek – A nyilvanos adatok es m veletek a szoftverrendszer tobbi objektuma szamara (is) elerhet k • Tajekozodas az objektum allapotarol
1
Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientalt paradigma alapelemei Objektum Osztaly Peldanyositas A konstruktor es a destruktor Osztalyok kozotti kapcsolatok
3
Szerviz() EgyikKocsi : Auto Suzuki Ignis 4WD 5MT KQX-987 MasikKocsi : Auto Lamborghini Murcielago LP640 KQX-988 Mez definiciok Metodusdefiniciok Osztaly (tipus) Objektum (peldany) Objektum (peldany) Mez ertekek Mez ertekek … EgyikKocsi.Beindul(); EgyikKocsi.Megy(); MásikKocsi.Beindul(); … Peldanyositas Peldanyositas 6
2 V1.1 2 Objektum • Az objektum allapottal rendelkez entitas, amely a benne tarolt adatok felhasznalasaval feladatokat hajt vegre es egyeb objektumokkal kommunikal – Adatokat es algoritmusokat tartalmaz – Sajat feladatait onalloan vegzi • Sajat „eletciklussal” rendelkezik • A „kulvilaggal” meghatarozott uzeneteken keresztul tartja a kapcsolatot • Az objektum sajat adatait mez knek, beepitett algoritmusait metodusoknak nevezzuk – Az objektumok metodusaikkal vesznek reszt az uzenetvaltasokban – Az uzenetek elemei: celobjektum, metodus, parameterek, eredmeny Definicio 3 V1.1 3 Objektum • Az objektum allapotat mez i aktualis erteke hatarozza meg – Az objektum allapota az elvegzett m veletek hatasara megvaltozhat – Ket objektum allapota akkor egyezik meg, ha minden megfelel mez ertekuk megegyezik – Az objektum mindig „megjegyzi” aktualis allapotat • Az objektum viselkedeset az altala ismert (az objektumba epitett) algoritmusok hatarozzak meg • Minden objektum egyertelm en azonosithato – Az objektumok onalloak (sajat eletciklusuk hatarozza meg ket) – Ha ket objektum allapota megegyezik, maguk az objektumok akkor sem azonosak Allapotok, viselkedes es azonossag 4
V1.1 6 Objektumorientált szoftverciklus • Objektumorientalt elemzes (OOA) – A megoldando feladat leirasa osztalyok es objektumok segitsegevel • Objektumorientalt tervezes (OOD) – A feladatleiras objektumkozpontu reszekre bontasa (dekompozicioja) • Logikai modell – az osztalyok es objektumok • Fizikai modell – a logikai modellt megvalosito modulok es folyamatok • Statikus es dinamikus jellemz k • Objektumorientalt programozas (OOP) – A modell megvalositasa egymassal kommunikalo, dinamikusan letrehozott objektumok segitsegevel, melyek egy-egy osztaly peldanyai • OO stilusu programokat barmilyen nem OO nyelven is lehet irni, csak nagyon nehez • Reszletesebb, pontosabb informaciok kes bb (a szoftvertechnologiaval foglalkozo tantargyak kereteben) Elemzes, tervezes, megvalositas 7
V1.1 4 Osztály • Az osztaly egy adott objektumtipust hataroz meg annak adataival (mez k) es beepitett algoritmusaival (metodusok) – Az osztalyok egyfajta mintat, sablont adnak az objektumokhoz • Az osztalyok tehat azonos adatszerkezet es viselkedes objektumokat irnak le • Minden objektum valamilyen letez osztalyba tartozik – Mas kifejezessel elve az egyes objektumok azon osztalyok peldanyai, amelyekhez tartoznak – Egy osztalybol tobb peldany is letrehozhato – Egy osztaly osszes peldanya ugyanazokat a mez ket es metodusokat tartalmazza • Az egyes peldanyok letrehozasuk pillanataban azonos allapotuak, ezt kovet en viszont onalloan m kodnek tovabb • Leteznek az osztalyra (es nem az egyes objektumpeldanyokra) jellemz mez k es metodusok is Definicio 5
V1.1 7 Metódusok általános típusai • Ahhoz, hogy az objektumokat hasznalhassuk, el szor letre kell hozni ket – Ez a m velet a peldanyositas – Alapja az osztaly megadott definicioja – A peldanyositast kovet en erhet k el az objektumok metodusai es ekkortol erhet el az objektumok mez inek erteke • A konstruktor egy olyan metodus, amelynek segitsegevel peldanyok (objektumok) hozhatok letre egy osztalybol – Feladatai: • Uj objektum letrehozasa • Az objektumhoz tartozo mez k kivant kezd ertekenek beallitasa • Egyeb szukseges kezdeti m veletek vegrehajtasa • Minden osztalyhoz tartoznia kell konstruktornak – Ha kulon nem definialunk konstruktort, akkor is letrejon Objektumok letrehozasa (peldanyositas): konstruktor 8
V1.1 5 Osztály Pelda: az Auto osztaly es ket peldanya (UML) Auto Gyarto Tipus Rendszam Beindul() Leall() Megy() Fordul()
V1.1 8 Metódusok általános típusai • Az objektumokat az utolso hasznalat utan fel kell szamolni – Minden objektum kulon-kulon szuntethet meg (onalloan leteznek) • A destruktor egy olyan metodus, melynek segitsegevel letez objektumok szuntethet k meg – Egyetlen feladata az objektum megszuntetese • Az objektumok felszamolasa lehet a programozo feladata vagy tortenhet automatikusan is
4
Leall() Halad() Szerviz() Leszarmazas 12
– Egy objektum akkor szamolhato fel automatikusan, ha a kes bbiekben mar biztosan nincs ra szukseg – Az automatikus felszamolas fejlettebb es joval kevesbe hibaerzekeny megoldas – Automatikus felszamolas eseten nincs feltetlenul szukseg destruktorra Objektumok megszuntetese (felszamolas): destruktor 9
V1.1 12 Osztályok közötti kapcsolatok • Az asszociacio osztalyok kozotti tetsz leges tipusu viszony – Altalaban az asszociacio konkret elnevezese fejezi ki a viszonyt • Szerep (pl. az ember az auto tulajdonosa) • Cselekves (pl. az ember vezeti az autot) – Multiplicitas: vannak „egy-egy”, „egy-tobb” es „tobb-tobb” tipusu asszociaciok – Iranyultsag: az asszociacio lehet egy- vagy ketiranyu • Asszociacios kapcsolat all fenn ket osztaly kozott, ha az egyiknek a sajat helyes m kodesehez ismernie kell a masikat – Pelda: egy osztaly hasznal egy masik osztalyt (un. „USES-A” kapcsolat) 2. Asszociacio 13
V1.1 9 Metódusok általános típusai • Modosito metodusok – Megvaltoztatjak az objektum allapotat • Kivalaszto metodusok – Hozzaferest biztosit az objektum adataihoz, de nem valtoztatjak meg ket (igy az objektum allapotat sem) • Iteracios metodusok – Az objektum adatainak valamely reszhalmazan „lepkednek vegig”, es az adott reszhalmazra vonatkozoan vegeznek el m veleteket Modosito, kivalaszto es iteracios metodusok 10
V1.1 13 Osztályok közötti kapcsolatok Pelda: asszociacio (UML) Hallgato Iskola tanul 0..* Leckekonyv birtokol Oktato 0..* alkalmaz oran vesz reszt Asszociacio 14
V1.1 10 Osztályok közötti kapcsolatok • Egy osztaly leszarmazottai „oroklik” az osztaly jellemz it – Rendelkeznek ugyanazokkal a mez kkel – Tartalmazzak ugyanazokat a metodusokat – Ebben a specializacios kapcsolatban a leszarmazottat „utodnak”, az eredeti osztalyt „ sosztalynak” nevezzuk • A leszarmazottak b vithetik az sosztaly adatait es algoritmusait – Uj mez ket adhatnak a meglev khoz – Uj metodusokat definialhatnak – Meglev metodusok m kodeset modosithatjak • A leszarmazottak minden m veletre kepesek, amelyre az sosztaly kepes volt – Az utodosztaly peldanyai hasznalhatok az sosztaly peldanyai helyett 1. Leszarmazas (un. „IS-A” kapcsolat) 11
V1.1 14 Osztályok közötti kapcsolatok • Az aggregacio az asszociacio specialis esete: tartalmazasi kapcsolat – A kapcsolat aszimmetrikus es tranzitiv – A tartalmazo osztaly peldanyai magukban foglaljak a tartalmazott osztaly egy vagy tobb peldanyat – A tartalmazo es a tartalmazott osztaly egymastol fuggetlenul letezhetnek • A tartalmazott atveheti (de nem orokli) a tartalmazo egyes jellemz it • A kompozicio az aggregacio specialis esete: szigoru tartalmazasi kapcsolat – Egy tartalmazottnak mindig csak egy tartalmazoja lehet • Egy tartalmazo viszont tetsz leges szamu tartalmazott peldannyal rendelkezhet – A tartalmazo es a tartalmazott eletciklusa kozos 3. Aggregacio es kompozicio (un. „HAS-A” kapcsolat) 15
V1.1 11 Osztályok közötti kapcsolatok Pelda: leszarmazas (UML) Auto Meghajtas Rendszam Beindul() Leall() Halad() Fordul() Hajo Merules Hivokod Beindul() Leall() Halad() Elsullyed() Repul Szarnyfesztav Hatotavolsag Felszall() Halad() Leszall() Jarm Gyarto Gyartas ideje Tipus Tulajdonos Beindul()
Osztályok közötti kapcsolatok Pelda: aggregacio es kompozicio (UML) Képen: Windows képnyomtatási ablak Az OOP néhány csapdája Mire kell ugyelni az osztalyok kialakitasanal? • Rossz dontes az osztalyok kozotti kapcsolat tipusanak megvalasztasanal – Pl. leszarmazas helyett aggregacio vagy forditva • Leszarmazasi kapcsolat helytelen kialakitasa – Az sosztaly tul keveset vagy tul sokat „tud” • Onkentelenul (nem lathato modon) beepitett feltetelezesek – Az sosztaly feltetelez bizonyos allapotvaltozasokat, a metodusok
5
Funkcio2 Kiiro Feldolgozo Kiiro Szintaktikai variaciok nevterre: Cég.Termék.Funkció1.Kiíró Cég.Termék.Funkció2.Kiíró Cég.Termék.Funkció2.Feldolgozó Cég/Termék/Funkció1/Kiíró Cég/Termék/Funkció2/Kiíró Cég/Termék/Funkció2/Feldolgozó „Nevterpotlek” technika: Cég_Termék_Funkció1_Kiíró Cég_Termék_Funkció2_Kiíró Cég_Termék_Funkció2_Feldolgozó 6 V1.1 2006. oktober 17. 6
vegrehajtasi sorrendjet – ez nem biztos, hogy a leszarmazottaknal is igaz lesz • „Felduzzasztott” osztalyok – A tul sok mez es metodus, a tul hosszu metodusok azt jelezhetik, hogy valamilyen modon fel kell bontani az osztalyt • Elnevezesi anomaliak
PDF 04 1
Adatstruktúrák, algoritmusok, objektumok 4. Egysegbezaras, adatrejtes Nevterek Lathatosagi szintek Osztaly es peldany szint tagok Tulajdonsagok 2 V1.1 2006. oktober 17. 2
Láthatósági szintek • A lathatosagi szintek segitsegevel kulonitjuk el az osztaly bels , illetve kivulr l is elerhet tagjait – Az egyes mez k es metodusok lathatosaga kulon-kulon szabalyozhato • Alapvet lathatosagi szintek: – Nyilvanos (public) • Az adott tagot az osztaly sajat metodusai, az osztaly leszarmazottainak metodusai es az osztalyt hasznalo mas osztalyok metodusai hasznalhatjak • Ezzel a szinttel valosul meg az osztaly kulvilag szamara lathato „felulete” – Vedett (protected) • Az adott tagot az osztaly sajat metodusai es az osztaly leszarmazottainak metodusai hasznalhatjak • Ez a szint a leszarmazottak szamara tesz elerhet ve bizonyos funkciokat – Privat (private) • Az adott tagot csak az osztaly sajat metodusai hasznalhatjak • Ezzel a szinttel valosul meg az osztaly szigoruan bels jelleg funkcionalitasa Mez k es metodusok vedelme 7 V1.1 2006. oktober 17. 7
Egységbezárás • Az objektumok adatait es a rajtuk vegezhet m veleteket szoros egysegbe zarjuk – Az adatok csak a definialt m veletek segitsegevel erhet k el – Mas m veletek nem vegezhet k az objektumokon • Az egysegbezaras vedi az adatokat a teves modositasoktol Definicio (ismetles) 3 V1.1 2006. oktober 17. 3 Adatrejtés • Az absztrakciok megvalositasanak reszleteit elrejtjuk a „kulvilag” el l • Az objektumokon belul elkulonitjuk a bels (privat) es a kuls (nyilvanos) adatokat es m veleteket – A privat adatok es m veletek csak a megvalositashoz szuksegesek – A nyilvanos adatok es m veletek a szoftverrendszer tobbi objektuma szamara (is) elerhet k • Tajekozodas az objektum allapotarol • Az objektum allapotanak modositasa • Uzenetvaltas Definicio (ismetles) 4 V1.1 2006. oktober 17. 4
Láthatósági szintek • A lathatosagi szintek segitsegevel hatekonyan, biztonsagosan (adatrejtessel egyutt) valosithato meg az egysegbezaras – Az osztalyok a kivulr l is lathato elemeiket bocsatjak mas osztalyok rendelkezesere • A nyilvanos mez k adatokat, a nyilvanos metodusok m veleteket tesznek elerhet ve – Az egyes osztalyok megvalositasi reszletei modosithatok anelkul, hogy az osztalyt hasznalo mas osztalyoknak err l tudniuk kellene • A megvalositast vegz algoritmusok nincsenek kihatassal az osztalyt hasznalo kodra – Konkret OO nyelvi megvalositasokban altalaban tovabbi lathatosagi szintek is leteznek Osszegzes 8 V1.1 2006. oktober 17. 8
Névterek • Az OO paradigma jellemz je az elnevezesek oriasi szama – Minden osztalynak, objektumnak, mez nek, metodusnak egyedi nevet kell adni, hogy a kes bbiekben hivatkozni lehessen ra • Nem konny jol megjegyezhet , a celt kes bb is felidez neveket adni • A programok meretevel egyenes aranyban n a nevutkozesek valoszin sege – A programok altalaban nem csak sajat osztalyokat hasznalnak fel • A névtér, mint az elnevezesek ervenyessegenek tartomanya, hierarchikus logikai csoportokra bontja az elnevezeseket – Minden elnevezesre csak a sajat nevteren belul lehet hivatkozni • Ennek megfelel en a sajat nevteren belul minden elnevezes egyedi – A nevterek altalaban tetsz leges melysegben egymasba agyazhatok – Azonos elnevezesek mas-mas nevtereken belul szabadon hasznalhatok, igy er sen lecsokken a nevutkozesi problema jelent sege 5 V1.1 2006. oktober 17. 5
Példány szint tagok • A peldany szint tagok a peldanyositott objektumok – sajat adatmez i, valamint – sajat adatain m veleteket vegz metodusai. • A peldany szint mez k taroljak a peldanyok allapotat • Az egyes metodusok programkodjat altalaban nem tartalmazza kulon-kulon az osztaly minden peldanya – A metodusok minden peldanynal azonosak es nem modosithatok, ezert a metodusok programkodjat az osztalyon belul szokas tarolni – Szukseg lehet azonban arra, hogy a peldany szint metodusok hivatkozni tudjanak arra az objektumra, amelyen a m veletet vegzik • Pelda: atadas parameterkent vagy eredmenykent; elnevezesek egyertelm sitese
Névterek Pelda Ceg Termek Funkcio1
6
– Ezt altalaban egy rejtett parameterrel valositjak meg • Megnevezese nyelvi megvalositasonkent valtozik („this”, „Self”, „Me”...) • Mindig minden peldanymetodusbol elerhet , erteke a peldany maga Objektumokhoz tartozo mez k es metodusok 9 V1.1 2006. oktober 17. 9
• A tulajdonsagok a mez khoz es a metodusokhoz hasonloan kulonboz lathatosagi szintekhez sorolhatok
Osztály szint tagok • Az osztaly szint tagok az egyes osztalyokhoz tartozo – egyedi adatmez k, valamint – az ezeken m veleteket vegz metodusok. • Osztaly szint adatmez k – Minden osztaly pontosan egyet tartalmaz bel luk, fuggetlenul az osztalybol letrehozott objektumpeldanyok szamatol • Osztaly szint metodusok – Akkor is elerhet k, ha az osztalybol egyetlenegy peldany sem letezik – Csak osztaly szint adatmez ket hasznalhatnak – Specialis osztaly szint metodus az osztaly szint konstruktor • Feladata az osztaly szint adatmez k kezd ertekenek beallitasa • Altalaban az osztalyra torten els hivatkozas el tt fut le automatikusan – Konkret peldanyt nem igenyl feladatok vegrehajtasara is alkalmasak • Pelda: f program megvalositasa Osztalyokhoz tartozo mez k es metodusok 10 V1.1 2006. oktober 17. 10
Adatstruktúrák, algoritmusok, objektumok 5. Orokles Bevezet Definicio, terminologia Tobbszoros orokles Specialis metodusok orokl dese 2 V1.0 2006. oktober 17. 2
PDF 05 1
Öröklés • A mar meglev objektumtipusok alapjan keszithetunk uj tipusokat, melyek rendelkeznek az „ stipus” tulajdonsagaival – Ez egy specializacios m velet („szarmaztatas”) • A „leszarmazottak” „oroklik” az stipus tulajdonsagait – A leszarmazottak b vithetik, esetenkent akar sz kithetik az stipus allapotteret, illetve m veleteit – Teljes leszarmazasi hierarchiakat is letrehozhatunk – Kivalo lehet seg a kozos tulajdonsagok, m veletek osszevonasara es ujrahasznositasara • Az alapelv kovetkezetes alkalmazasaval elerhet , hogy a mar megvalositott funkcionalitas kes bb a megvalositas reszleteinek ismerete nelkul is felhasznalhato legyen – Jol atgondolt el zetes tervezest igenyel Definicio (ismetles) 3 V1.0 2006. oktober 17. 3
Osztály és példány szint tagok Osszehasonlito tablazat Osztalyonkent egyegy peldany (van konkret objektum, amelyen m kodnek) Osztalyonkent egyegy peldany (nincs konkret objektum, amelyen m kodnek) Metodusok (funkciotagok) Minden egyes objektumhoz sajat peldany Egyetlen, az osztalyhoz tartozo peldany Mez k (adattagok) Peldany (objektum) szint tagok Osztaly szint tagok 11 V1.1 2006. oktober 17. 11
Öröklés 1. pelda – Geometriai alakzatok kezelese Alakzat Pozicio Iranyszog Mozgat() Forgat() Kirajzol() Teglalap Kirajzol() Ellipszis Kirajzol() Kor Kirajzol() A leszarmazottak ugyanazt a funkciot biztositjak kulonboz , rajuk jellemz megvalositasban 4 V1.0 2006. oktober 17. 4
Tulajdonságok Intelligens mez k – egy szintaktikai „cukorka” • A tulajdonsag olyan nyelvi elem, amely felhasznalas szempontjabol adatmez kent, megvalositas szempontjabol metoduskent viselkedik – Az adott osztaly felhasznaloi mez nek „latjak” a tulajdonsagot • A kulvilag mez kent hivatkozhat a tulajdonsagra – A tulajdonsagot megvalosito osztaly kulon-kulon metodust rendelhet a tulajdonsag olvasasi es irasi m veletehez • Olvasaskor a megfelel metodus egy valodi (altalaban privat) mez erteket is visszaadhatja, de akar szamitassal is el allithatja a visszaadott erteket • Iraskor a megfelel metodus egy valodi (altalaban privat) mez erteket is modosithatja, de vegezhet egyeb m veleteket is vagy akar modositas el tt ellen rizheti az atadott erteket – A tulajdonsag tehat felfoghato intelligens mez kent
Öröklés 2. pelda – Jarm vek osztalyozasa Jarm Sebesseg Gyorsit() Lassit() Foldi jarm Vizijarm Uszik() Legi jarm Repul() Auto Kamion Csonak Hajo Tolat() Repul Raketa A leszarmazottak mind rendelkeznek seik osszes adatmez jevel es metodusaval A leszarmazottak vithetik is az orokolt funkciok koret
7
Speciális metódusok örökl dése • A konstruktorok es destruktorok nem feltetlenul orokl dnek – Az objektumok letrehozasakor vegre kell hajtani minden egyes s valamelyik konstruktorat is • Ez szinten resze a konstruktorok alapvet feladatkorenek • Hivasi sorrend – A konstruktorok leszarmazas szerinti sorrendben hajtodnak vegre • El szor az sok adatait kell inicializalni, hiszen a leszarmazottak ezeket akar mar a sajat konstruktorukban is fel kivanhatjak hasznalni – A destruktorok leszarmazas szerinti forditott sorrendben hajtodnak vegre • El szor az utodok esetleges bels objektumait kell felszamolni, hiszen az utodok destruktora meg hivatkozhat az sok bels objektumaira Konstruktorok es destruktorok
5 V1.0 2006. oktober 17. 5 Öröklés A leszarmazottak tenyleges felepitese Csonak <Jarm mez i>
Sajat mez k <Jarm metodusai> Sajat metodusok Csonak Vizijarm Jarm 6 V1.0 2006. oktober 17. 6 Öröklés Terminologia Peldany szint tag Mez vagy metodus Osztaly szint tag Statikus mez vagy statikus metodus Funkciotag Metodus / tagfuggveny Adattag Adatmez / mez / tagvaltozo Leszarmazott A szarmazasi fa alacsonyabb szint eleme s A szarmazasi fa magasabb szint eleme Az osztalyhierarchiaban egy szinttel magasabban lev osztaly Kozvetlen s Egymasbol leszarmazo osztalyok hierarchikus rendszere („szarmazasi fa”) Osztalyhierarchia Kifejezes Jelentese, szinonimai 7 V1.0 2006. oktober 17. 7
PDF 06 1 Adatstruktúrák, algoritmusok, objektumok 6. Tobbalakusag Bevezet Adatmez k tobbalakusaga Nemvirtualis metodusok Virtualis metodusok Absztrakt metodusok, absztrakt osztalyok Lezart metodusok, lezart osztalyok Interfeszek 2 V1.0 2006. oktober 24. 2
Többszörös öröklés • Tobbszoros orokles eseten egy osztalynak tobb se van – Ez egy sokat vitatott lehet seg nehany OOP megvalositasban • El nyok: – Egyszerre tobb sosztaly kepessegei orokolhet k • Tobb szarmaztatasi szempont ervenyesithet egyszerre • Tobb s tulajdonsagait otvoz „vegyes” osztalytipusok – Nagyobb rendszereknel gyakran felmerul az igeny ra • Hatranyok: – Igen nehez megvalositani • Komoly megvalositasi problemak: adatmez k oroklese, kozos kozvetett sok (leszarmazas tobb utvonalon) • Nagyobb rendszereknel szinte lehetetlen jol, kovetkezetesen megvalositani – Bonyolult • Bonyolitja a programozasi nyelv eszkozeit, a programok tervezeset Orokles egynel tobb sosztallyal 8 V1.0 2006. oktober 17. 8
Többalakúság • A kulonboz , egymasbol szarmazo objektumtipusok hasonlo veletei a konkret objektumtol fugg en mas-mas konkret megvalositassal rendelkezhetnek – Ugyanaz a m velet nemileg elter lehet az stipus es a leszarmazott tipus eseteben – Az alapelv lehet seget teremt ra, hogy azonos nevvel hivatkozzunk az azonos celu, de a leszarmazasi hierarchia kulonboz szintjein masmas megvalositast kivano m veletekre • Az egyes stipusok leszarmazottai mindenre alkalmasak, amire az adott stipus alkalmas volt – Minden olyan helyzetben es funkcioban, ahol az stipus szerepelhet, annak barmely leszarmazottja is szerepelhet Definicio (ismetles) 3 V1.0 2006. oktober 24. 3
Többszörös öröklés – Problémák Adatmez k oroklese, leszarmazas tobb utvonalon Dolgozo Feln tt Gyermek Szemely Ferfi N Diak Beosztott Vezet Hallgato Tegyuk fel, hogy a „Dolgozo” osztalynak es a „Ferfi” osztalynak is van egy „Szakma” mez je. A „Hallgato” melyiket orokolje? Tegyuk fel, hogy a „Szemely” osztalynak van egy „Tanul()” nev metodusa, amelynek a viselkedeset a „Diak” osztaly es a „Feln tt” osztaly is modositja. A „Hallgato.Tanul()” hivas melyiket hasznalja? 1 2 9 V1.0 2006. oktober 17. 9
Adatmez k többalakúsága • Az orokolt mez k a leszarmazottakban is elerhet k – Az elerest az adott mez hozzaferesi szintje szabalyozza • Orokles soran a mez k statikusan viselkednek – A mez k jellemz i (viselkedesuk, tipusuk, meretuk, nevuk) nem valtoztathatok meg orokles utjan – Minden leszarmazott tartalmazza minden korabbi s osszes mez jet, emellett tetsz legesen b vitheti is a mez k koret • A mez k ennelfogva (a mai OO programnyelvekben) nem kepesek tobbalaku viselkedesre 4 V1.0 2006. oktober 24. 4 Nemvirtuális metódusok • A nemvirtualis metodusok a leszarmazottakban is elerhet k – Az elerest az adott metodus hozzaferesi szintje szabalyozza
8
VMT Alakzat.Mozgat() Alakzat.Forgat() Ellipszis.Kirajzol() VMT Alakzat.Mozgat() Alakzat.Forgat() Alakzat.Kirajzol() VMT Virtuális metódusok Megvalositas – A virtualismetodus-tabla (VMT) Alakzat +Mozgat() +Forgat() +Kirajzol() Ellipszis +Kirajzol() Kör +Kirajzol() E : Ellipszis K : Kor Alakzat A; Alakzat E = new Ellipszis(); Alakzat K = new Kör(); A = K; A.Kirajzol(); // Kör A = E; A.Kirajzol(); // Ellipszis EAK 9 V1.0 2006. oktober 24. 9
• Orokles soran a nemvirtualis metodusok viselkedese korlatozottan modosithato – A nemvirtualis metodusok a leszarmazottakban ujra deklaralhatok – Viselkedesuk mar a program leforditasakor eld l, attol fugg en, hogy az adott metodust milyen kontextusban hasznaljuk – Az oroklesnek tehat itt minimalis szerepe van • Lenyegeben egy azonos nev metodust keszitettunk a leszarmazottban, aminek nincs kapcsolata az s azonos nev metodusaval • Altalaban van lehet seg az sosztaly azonos nev metodusanak eleresere a leszarmazottbol is, igy „manualisan” korlatozott kapcsolat teremthet • A nemvirtualis metodusok nem alkalmasak tobbalakusag megvalositasara veletek statikus jelleg megvalositasa 5 V1.0 2006. oktober 24. 5 Nemvirtuális metódusok • Nemvirtualis metodus hivasakor az adott objektum deklaralt tipusanak megfelel osztaly adott nev metodusa hivodik meg – Az objektumokat a programon belul tagvaltozokban taroljuk – A tagvaltozok deklaralt tipusa valasztja ki a hivando nemvirtualis metodust – Ez az informacio mar forditaskor ismert, igy a forditoprogram el re elkeszitheti a hivast megvalosito gepi kodot (statikus kotes) • El nyok: – Egyszer megvalositas; nincs futasi idej teljesitmenyveszteseg • Hatranyok: – Nem alkalmasak tobbalakusag megvalositasara A statikus (forditasi idej vagy „korai”) kotes 6 V1.0 2006. oktober 24. 6
Absztrakt osztályok • Absztrakt osztaly: legalabb egy absztrakt metodust tartalmazo osztaly – Absztrakt metodus: deklaralt, de (altalaban) meg nem valositott virtualis metodus, amelyet az t tartalmazo osztaly valamennyi leszarmazottja koteles un. „felulbiralassal” megvalositani • Az absztrakt osztalyok nem peldanyosithatok – Celjuk az orokles „kikenyszeritese”, nem a tenyleges megvalositas • Segitsegukkel altalanos funkcionalitas irhato el az oroklesi hierarchia fels bb szintjein – Mivel az absztrakt metodusokat kotelez megvalositani, ezek funkciojara a leszarmazott osztalyokat felhasznalo egyeb osztalyok biztosan szamithatnak Az orokles kotelez ve tetele 10 V1.0 2006. oktober 24. 10
Virtuális metódusok • A virtualis metodusok a leszarmazottakban is elerhet k – Az elerest az adott metodus hozzaferesi szintje szabalyozza • Orokles soran a nemvirtualis metodusok viselkedese szabadon modosithato – A virtualis metodusok a leszarmazottakban felulbiralhatok – Viselkedesuk attol fugg en valtozik, hogy az adott m veletet vegrehajto konkret objektum milyen tipusu (mely osztaly peldanya) • A tenylegesen vegrehajtando m velet kivalasztasa tehat futasi id ben tortenik • A virtualis metodusok a tobbalakusag megvalositasanak legf bb eszkozei – A virtualis metodus fogalma az objektumorientalt programozasi paradigma egyik legfontosabb eleme veletek dinamikus jelleg megvalositasa 7 V1.0 2006. oktober 24. 7
Lezárt osztályok • A lezart osztalyok es lezart metodusok lehet seget adnak az orokles eseti jelleg megakadalyozasara – Veglegesnek szant osztalyok, illetve metodusok eseten lehet celszer alkalmazni ezt a megoldast • Csak osztalyszint tagokat tartalmazo osztalyok • Biztonsagi es gyakorlati megfontolasok (hatekonysag, tamogatas, jogvedelem) • Lehet seget adnak a teljesitmeny bizonyos optimalizalasara – Feltetelezhet , hogy az osztaly minden tarolt peldanya pontosan megegyez adatszerkezettel es viselkedessel rendelkezik • Mivel nincsenek leszarmazottak, nincs tobbalakusag sem – A lezart osztalyok virtualis metodusai nemvirtualissa alakithatok • Er s korlatozast jelentenek a fejlesztes soran – Hasznalatuk alapos megfontolast igenyel Az orokles (es ezzel a tobbalakusag) megakadalyozasa 11 V1.0 2006. oktober 24. 11
Virtuális metódusok • Virtualis metodus hivasakor az adott objektum tenyleges tipusanak megfelel osztaly adott nev metodusa hivodik meg – A tagvaltozok tartalma nemcsak a deklaralt osztaly lehet, hanem annak osszes leszarmazottja is – Csak a hivas pillanataban derul ki, hogy a tagvaltozo tenylegesen mely osztaly egy peldanyat tartalmazza – A metodushivast tehat futasi id ben kell el kesziteni • El nyok: – Tobbalakusag; rendkivuli rugalmassag • Hatranyok: – Teljesitmenyveszteseg; nagyobb tarigeny; bonyolultabb megvalositas A dinamikus (futasi idej vagy „kes i”) kotes 8 V1.0 2006. oktober 24. 8
Interfészek • Az interfeszek olyan „ures osztalyok”, amelyek nem tartalmaznak megvalositast – Altalaban metodusokat tartalmaznak, de mez ket nem • Egyeb, metodusokhoz kot nyelvi konstrukciokat (tulajdonsagok, esemenyek) szinten tartalmazhatnak • Egy osztaly akkor „tamogat” egy interfeszt, ha kotelez en vallalja, hogy megvalositja a benne foglalt funkcionalitast – Egy osztaly altalaban tetsz leges szamu interfeszt tamogathat
Alakzat.Mozgat() Alakzat.Forgat() Kor.Kirajzol()
9
Definicio (ismetles) 3 2006. V0.6 szeptember 12. 3
– Az interfesz-fogalom un. „CAN-DO” kapcsolatot valosit meg • Sajat, kulonallo (az osztalyhierarchiatol fuggetlen) oroklesi hierarchiaval rendelkeznek • Interfesz tipusu valtozok segitsegevel azonos viselkedes , de mas jelleg osztalyok hasznalhatok azonos kontextusban Adott funkcionalitas el irasa orokles helyett 12 V1.0 2006. oktober 24. 12
Képvisel k (delegáltak) • A képvisel (delegalt) olyan specialis nyelvi elem, melynek segitsegevel egy osztalyhoz kuls osztalyok utolag is kapcsolodni tudnak – A kepvisel el irja az uzenetek formatumat • A kuls osztaly tetsz leges lehet, a kepvisel n keresztuli kommunikacio egyetlen feltetele a formatum betartasa • Lehet ve teszik, hogy egy osztaly metodusai kuls osztalyok metodusait ismeretlenul is meg tudjak hivni – Uzenetkuldesi funkcio kuls osztalyok reszere – Ezzel lehet ve valik, hogy egy osztaly kepes legyen metodusokat meghivni olyan egyeb osztalyokbol, amelyek meg nem is leteznek • Univerzalis visszahivasi funkcio megvalositasa • Ertesitesi funkcio megvalositasa Kapcsolodas kuls (akar meg nem letez ) osztalyokhoz 4 2006. V0.6 szeptember 12. 4
Interfészek Osztalyok onkent vallalt megvalositasi kotelezettsegei IDolgozó Feln tt Személy Férfi IDiák ITancos IDiak +Dolgozik() +Dolgozik() +Jegyzetel() +Tanul() +Vizsgazik() ITáncos +Tangozik() +Kering zik() Hallgató Az osztalyoktol es egymastol fuggetlen Tobb interfeszt interfesz-hierarchiak tamogato osztaly +Tangozik() +Kering zik() +Dolgozik() +Jegyzetel() +Tanul() +Vizsgazik()
Események • Az esemeny olyan allapotvaltozas, amelynek bekovetkezese mas osztalyok erdekl desere tarthat szamot • Szinten eseménynek nevezzuk azt a nyelvi elemet, melynek segitsegevel megvalosul a kuls osztalyok ertesitese – Az ertesitesi folyamat altalanos menete: • Az esemeny irant erdekl osztaly „feliratkozik” az esemenyt „kozzetev ” osztalynal • A feliratkozas soran az osztaly meghatarozott formatumu sajat „esemenykezel t” ad at a kozzetev osztalynak • A kozzetev osztaly valamely metodusaban „kivaltodik” az esemeny • Err l az esemenyr l az osztaly metodushivas (a megadott esemenykezel hivasa) utjan ertesiti a feliratkozott osztalyt – Objektumorientalt megvalositasa kepvisel vel tortenhet • Egy esemenyre altalaban akar tobb osztaly is feliratkozhat – Legnagyobb szerepe az esemenyvezerelt programozasban es komponensek kialakitasanal van Erdekelt osztalyok ertesitese tortenesekr l 5 2006. V0.6 szeptember 12. 5
Osztalyhierarchia Tamogatott Interfeszek
PDF 07 1
Komponensek • A komponensek olyan osztalyok vagy osztalygy jtemenyek, amelyek keszen (binaris formaban), valtoztatas nelkul felhasznalhatok es osszekapcsolhatok – Onallo logikai (es altalaban fizikai) egyseget kepeznek – Felhasznalasukhoz altalaban nincs szukseg arra, hogy forraskodjuk rendelkezesre alljon – Az ket felhasznalo osztalyokkal metodusok (interfeszek), tulajdonsagok es esemenyek utjan erintkeznek • Segitsegukkel nagyobb rendszerek keszithet k kezelhet keretek kozott – A rendszereket konnyebb kisebb elemekre bontva megvalositani – Kulonboz nyelveken irt komponensek is egyuttm kodhetnek Ujrafelhasznalhato szoftver-epit elemek
Adatstruktúrák, algoritmusok, objektumok 7. Kodujrafelhasznalas (roviditett vazlat) Bevezet Kepvisel k (delegaltak) Esemenyek Komponensek 2 2006. V0.6 szeptember 12. 2 Kódújrafelhasználás • A mar megvalositott objektumtipusokat kesz (binaris) formaban mas programokban is felhasznalhatjuk – Jo tervezes es dokumentalas eseten az objektumok nyilvanos adatai es veletei elegend ek a kes bbi felhasznalashoz • Szintaktikai b vitesekkel (pl. „tulajdonsagok”, „esemenyek”) kenyelmesebbe tehet a kuls felhasznalas – Az egyes objektumtipusokat egymasba agyazva osszetettebb tipusokat hozhatunk letre – A kesz, ujrafelhasznalhato objektumtipusokat csoportokba fogva akar nagyobb „szoftver-epit elemeket” (komponenseket) is letrehozhatunk • A fenti alapelvekre epitve ez az alapelv jelenti az igazi attorest a szoftvertechnologiaban
10