SlideShare una empresa de Scribd logo
1 de 12
Interface terve zés Perényi Zsigmond,  Pronaxis Kft.   ( z sigmond.perenyi @pronaxis.com ) OOD   tanfolyam (2003. július 1.) Objektum-orientált alapfogalmak
Objektumok kommunikációja ,[object Object],[object Object],[object Object],request A z  objektum  metódusának meghívásával történik . P l :   l ist.sort (); caller s ort () method List sort()
Objektumok kommunikációja  2. ,[object Object],[object Object],List sort() request caller s ort () m ethod   body operation   signature (definition /declaration) … .. … .. … .. specifikáció implementáció o szt ály <<realize>> List sort() interface
Interface ,[object Object],[object Object],[object Object],Collection add ( o:Object) remove ( o:Object) size(): int interface Sortable sort( ) interface
Interface öröklés ,[object Object],Ordered Collection List get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) interface Collection add ( o:Object) remove ( o:Object) size(): int interface Sortable sort( ) interface Set interface
Interface implementációja List get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) interface <<realize>> ArrayList get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) LinkedList get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) <<realize>> o szt ály o szt ály A … .. … .. L … .. … .. különböző implementációk
Típus ,[object Object],[object Object],[object Object],[object Object],Osztály osztály öröklés :   az adatok és a metódus implementációk is öröklődnek -> code/impl. megosztás/reuse  az interfészek által definiált operációk implementációi + adatreprezentáció
Polimorfizmus A különböző objektumok, melyek azonos interface-szel rendelkeznek, másként implementálhatják az interface által definiált metódusokat. Vagyis egy adott üzenet által kiváltott metódusnak több alakja lehet: polimorfizmus . request -> (futás idejű összekötés: dynamic binding) -> method  Azonos interface-szel rendelkező (= azonos típusú) objektumok felcserélhetők.  “ Program to an interface!&quot;   A kód írásakor csak annyit követelünk meg, hogy egy adott objektum valósítsa meg az adott interface-t, vagyis képes legyen elfogadni a neki szánt üzeneteket. Így a kód írásakor tulajdonképpen olyan metódusokat hívunk, amelyek lehet, hogy nem is léteznek (virtuális metódusok)...  Amikor egy objektumnak üzenetetet küldünk, az, hogy pontosan melyik metódus hívódik meg, mind az üzenettől, mind a célobjektumtól függ.
Programozás a gyakorlatban tervezési konstrukciók -> nyelvi eszközök -> programozói eszközök  M inden osztály  (implicit módon)  egyben egy interface is, amely az osztály által definiált összes metódust tartalmazza!  osztály öröklés ↔ interface öröklés - Class + Interface abstract class  Java + Class + pure virtual class  C++ Többszörös öröklés Megvalósítása Többszörös öröklés Megvalósítása Class Interface
Újrafelhasználás (reuse) Delegáció :  eg y objektum a kapott üzenetet továbbíthatja (delegálhatja) egy másik objektumnak, majd az eredményt úgy adhatja vissza a hívónak, mintha ő végezte volna el a kívánt feladatot.  Kompozíció Öröklés ,[object Object],[object Object],[object Object],dinamikus: az objektum akár futás időben is kicserélhető Black-box reuse Kevesebb osztályt, több példányt eredményez ,[object Object],[object Object],[object Object],[object Object],[object Object],White-box reuse Több osztályt eredményez Hátrányok Előnyök
Paraméterezhető (sablon, template) osztályok Az újrafelhasználás egy formája . ,[object Object],[object Object],[object Object],[object Object],[object Object],Az UML támogatja: List T:class ,[object Object],[object Object],[object Object],[object Object]
Fordítási idejű ↔ futási idejű struktúrák asszociáció -> aggregáció -> kompozíció

Más contenido relacionado

Destacado

Click On The Tear
Click On The TearClick On The Tear
Click On The TearCynthia D
 
The Power of Process
The Power of ProcessThe Power of Process
The Power of ProcessFred Hess
 
(D)the customer journey
(D)the customer journey(D)the customer journey
(D)the customer journeyFred Hess
 
7 CardiomiopatíAs
7 CardiomiopatíAs7 CardiomiopatíAs
7 CardiomiopatíAscardiologia
 
Paper Slideshow(Mindy)
Paper Slideshow(Mindy)Paper Slideshow(Mindy)
Paper Slideshow(Mindy)brad broughton
 
5 Tings I Like About School
5 Tings I Like About School5 Tings I Like About School
5 Tings I Like About Schoolbrad broughton
 
The Things I Like About School
The Things I Like About SchoolThe Things I Like About School
The Things I Like About Schoolbrad broughton
 
Mitosy Leyendas
Mitosy LeyendasMitosy Leyendas
Mitosy Leyendascjamon
 
Blowing In The Wind
Blowing In The WindBlowing In The Wind
Blowing In The Windguest357e7f
 
The Customer Journey
The Customer JourneyThe Customer Journey
The Customer JourneyFred Hess
 
Social Reading: Vom Bibelkreis zu YouPorn
Social Reading: Vom Bibelkreis zu YouPornSocial Reading: Vom Bibelkreis zu YouPorn
Social Reading: Vom Bibelkreis zu YouPornAlexander Vieß
 
Paper Slideshow(Mindy)
Paper Slideshow(Mindy)Paper Slideshow(Mindy)
Paper Slideshow(Mindy)brad broughton
 
Typesetting for the Web
Typesetting for the WebTypesetting for the Web
Typesetting for the WebZeke Franco
 
[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network Security[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network SecurityLim Jung
 
[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network Security[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network SecurityLim Jung
 

Destacado (20)

Click On The Tear
Click On The TearClick On The Tear
Click On The Tear
 
School Ca
School CaSchool Ca
School Ca
 
school stuff
school stuffschool stuff
school stuff
 
School Rocks
School RocksSchool Rocks
School Rocks
 
The Power of Process
The Power of ProcessThe Power of Process
The Power of Process
 
(D)the customer journey
(D)the customer journey(D)the customer journey
(D)the customer journey
 
7 CardiomiopatíAs
7 CardiomiopatíAs7 CardiomiopatíAs
7 CardiomiopatíAs
 
Paper Slideshow(Mindy)
Paper Slideshow(Mindy)Paper Slideshow(Mindy)
Paper Slideshow(Mindy)
 
5 Tings I Like About School
5 Tings I Like About School5 Tings I Like About School
5 Tings I Like About School
 
The Things I Like About School
The Things I Like About SchoolThe Things I Like About School
The Things I Like About School
 
Kom Tot Rust In De Natuur
Kom Tot Rust In De NatuurKom Tot Rust In De Natuur
Kom Tot Rust In De Natuur
 
Mitosy Leyendas
Mitosy LeyendasMitosy Leyendas
Mitosy Leyendas
 
Blowing In The Wind
Blowing In The WindBlowing In The Wind
Blowing In The Wind
 
The Customer Journey
The Customer JourneyThe Customer Journey
The Customer Journey
 
Social Reading: Vom Bibelkreis zu YouPorn
Social Reading: Vom Bibelkreis zu YouPornSocial Reading: Vom Bibelkreis zu YouPorn
Social Reading: Vom Bibelkreis zu YouPorn
 
Paper Slideshow(Mindy)
Paper Slideshow(Mindy)Paper Slideshow(Mindy)
Paper Slideshow(Mindy)
 
Typesetting for the Web
Typesetting for the WebTypesetting for the Web
Typesetting for the Web
 
[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network Security[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network Security
 
[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network Security[Ppt] Survey Of Vehicular Network Security
[Ppt] Survey Of Vehicular Network Security
 
Ryan Porter
Ryan PorterRyan Porter
Ryan Porter
 

Similar a Interface Design

Két Java fejlesztő első Scala projektje
Két Java fejlesztő első Scala projektjeKét Java fejlesztő első Scala projektje
Két Java fejlesztő első Scala projektjeDPC Consulting Ltd
 
Fables - Funkcionális programozási nyelv ágens-alapú szimulációkhoz
Fables - Funkcionális programozási nyelv ágens-alapú szimulációkhozFables - Funkcionális programozási nyelv ágens-alapú szimulációkhoz
Fables - Funkcionális programozási nyelv ágens-alapú szimulációkhozRichard Oliver Legendi
 
Előadás2
Előadás2Előadás2
Előadás2egyetem
 
1 java megismerese
1 java megismerese1 java megismerese
1 java megismeresebalazs85
 
Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...
Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...
Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...Ferenc Szalai
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorialakos.tajti
 
Szoftver tesztelés - Gyakorlati jó-ha-tudod
Szoftver tesztelés - Gyakorlati jó-ha-tudodSzoftver tesztelés - Gyakorlati jó-ha-tudod
Szoftver tesztelés - Gyakorlati jó-ha-tudodRichard Oliver Legendi
 
Objektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-benObjektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-benvvinston
 
Interaktív EDA R-ben: iPlots
Interaktív EDA R-ben: iPlotsInteraktív EDA R-ben: iPlots
Interaktív EDA R-ben: iPlotsImre Kocsis
 

Similar a Interface Design (9)

Két Java fejlesztő első Scala projektje
Két Java fejlesztő első Scala projektjeKét Java fejlesztő első Scala projektje
Két Java fejlesztő első Scala projektje
 
Fables - Funkcionális programozási nyelv ágens-alapú szimulációkhoz
Fables - Funkcionális programozási nyelv ágens-alapú szimulációkhozFables - Funkcionális programozási nyelv ágens-alapú szimulációkhoz
Fables - Funkcionális programozási nyelv ágens-alapú szimulációkhoz
 
Előadás2
Előadás2Előadás2
Előadás2
 
1 java megismerese
1 java megismerese1 java megismerese
1 java megismerese
 
Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...
Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...
Miért vagyok Python rajongó? - avagy kalandozások egy nyílt forrású programoz...
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorial
 
Szoftver tesztelés - Gyakorlati jó-ha-tudod
Szoftver tesztelés - Gyakorlati jó-ha-tudodSzoftver tesztelés - Gyakorlati jó-ha-tudod
Szoftver tesztelés - Gyakorlati jó-ha-tudod
 
Objektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-benObjektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-ben
 
Interaktív EDA R-ben: iPlots
Interaktív EDA R-ben: iPlotsInteraktív EDA R-ben: iPlots
Interaktív EDA R-ben: iPlots
 

Interface Design

  • 1. Interface terve zés Perényi Zsigmond, Pronaxis Kft. ( z sigmond.perenyi @pronaxis.com ) OOD tanfolyam (2003. július 1.) Objektum-orientált alapfogalmak
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Interface implementációja List get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) interface <<realize>> ArrayList get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) LinkedList get(i :int ) : Object set (i:int, o:Object) add(i:int, o:Object) remove(i:int) <<realize>> o szt ály o szt ály A … .. … .. L … .. … .. különböző implementációk
  • 7.
  • 8. Polimorfizmus A különböző objektumok, melyek azonos interface-szel rendelkeznek, másként implementálhatják az interface által definiált metódusokat. Vagyis egy adott üzenet által kiváltott metódusnak több alakja lehet: polimorfizmus . request -> (futás idejű összekötés: dynamic binding) -> method Azonos interface-szel rendelkező (= azonos típusú) objektumok felcserélhetők. “ Program to an interface!&quot; A kód írásakor csak annyit követelünk meg, hogy egy adott objektum valósítsa meg az adott interface-t, vagyis képes legyen elfogadni a neki szánt üzeneteket. Így a kód írásakor tulajdonképpen olyan metódusokat hívunk, amelyek lehet, hogy nem is léteznek (virtuális metódusok)... Amikor egy objektumnak üzenetetet küldünk, az, hogy pontosan melyik metódus hívódik meg, mind az üzenettől, mind a célobjektumtól függ.
  • 9. Programozás a gyakorlatban tervezési konstrukciók -> nyelvi eszközök -> programozói eszközök M inden osztály (implicit módon) egyben egy interface is, amely az osztály által definiált összes metódust tartalmazza! osztály öröklés ↔ interface öröklés - Class + Interface abstract class Java + Class + pure virtual class C++ Többszörös öröklés Megvalósítása Többszörös öröklés Megvalósítása Class Interface
  • 10.
  • 11.
  • 12. Fordítási idejű ↔ futási idejű struktúrák asszociáció -> aggregáció -> kompozíció