„Objektumorientált szoftvertervezés - Tervezési minták” változatai közötti eltérés

Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotTervezesiMintak}} __TOC__ ==9.1. Külső segédletek:== * {{InLineFileLink|Infoszak|OotTervezesiMintak|jegyzetPatternek_.pdf|Design_Pat…”
 
Nagy Marcell (vitalap | szerkesztései)
autoedit v2: fájlhivatkozások egységesítése, az új közvetlenül az adott fájlra mutat
 
(5 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{GlobalTemplate|Infoszak|OotTervezesiMintak}}
__TOC__
 


__TOC__
==Külső segédletek:==


==9.1. Külső segédletek:==
[[Media:jegyzetPatternek_.pdf]] - néhány tervezési minta alaposabb kidolgozása


* {{InLineFileLink|Infoszak|OotTervezesiMintak|jegyzetPatternek_.pdf|Design_Patterns_jegyzet}}: néhány tervezési minta alaposabb kidolgozása
[[Media:Szoftvertechnikak_Design_Patterns_16-17.pdf]] - Szoftvertechnikak_Design_Patterns_16-17.pdf
* {{InLineFileLink|Infoszak|OotTervezesiMintak|Szoftvertechnikak_Design_Patters_16-17.pdf|Szoftvertechnikak_Design_Patterns_16-17.pdf}}: Szoftvertechnikak_Design_Patterns_16-17.pdf


==9.2. Mintkák röviden==
==Mintkák röviden==


===Callback===
===Callback===
16. sor: 14. sor:
Mármint az első hívást ugye a kliens kezdeményezi, és utána ha esemény történik, akkor a szerepek megcserélődnek, és a szerver kezdeményez visszahívást a kliensek felé.
Mármint az első hívást ugye a kliens kezdeményezi, és utána ha esemény történik, akkor a szerepek megcserélődnek, és a szerver kezdeményez visszahívást a kliensek felé.


{{InLineImageLink|Infoszak|OotTervezesiMintak|callback.png}}
[[File:callback.png]]


===Factory===
===Factory===
23. sor: 21. sor:
A szerver minden egyes új hívásnál új példányt hoz létre a kiszolgáló servantból.
A szerver minden egyes új hívásnál új példányt hoz létre a kiszolgáló servantból.


{{InLineImageLink|Infoszak|OotTervezesiMintak|factory.png}}
[[File:factory.png]]


===Mobil ügynök===
===Mobil ügynök===
31. sor: 29. sor:
Lehet például arra használni, hogy elküldeni egy adatbázisnak, ott leszelektálja az eredményt, majd azzal visszajön, így ha valamit nem tudunk SQL-be megírni, akkor is csak minimális lesz a hálózati forgalom.
Lehet például arra használni, hogy elküldeni egy adatbázisnak, ott leszelektálja az eredményt, majd azzal visszajön, így ha valamit nem tudunk SQL-be megírni, akkor is csak minimális lesz a hálózati forgalom.


{{InLineImageLink|Infoszak|OotTervezesiMintak|mobileagent.png}}
[[File:mobileagent.png]]
 


===Observer===
===Observer===
71. sor: 70. sor:
Objektumok viselkedésének kiterjesztése anélkül, hogy módosítanánk az oszályt.
Objektumok viselkedésének kiterjesztése anélkül, hogy módosítanánk az oszályt.


Szükséges hozzá egy [[IAdaptable]] interface, amiben van egy Object getAdapter(Class adapter) fv. Ez megkapja, hogy mivé szeretnénk kiegészíteni(adapter class-a), és létrehozza azt, majd visszaadja. A kiegészítendő osztályunknak ezt kell implementálnia.
Szükséges hozzá egy IAdaptable interface, amiben van egy Object getAdapter(Class adapter) fv. Ez megkapja, hogy mivé szeretnénk kiegészíteni(adapter class-a), és létrehozza azt, majd visszaadja. A kiegészítendő osztályunknak ezt kell implementálnia.


A probléma ezzel az, hogy ha új kiegészítést akarunk felvenni(új fajta adapter), akkor módosítanunk kell az osztályt. Erre megoldás, ha létrehozunk egy IAdapterFactory-t és egy IAdapterManager-t(ez benne van az Eclipse-ben, szal ezt nem kell nekünk megírni), ahol az AdapterManager-be regisztálhatunk adaptereketé az AdapterFactoryból pedig a Object getAdapter(Object adaptableObject, Class adapterType) fv-n keresztül elkérhetjük a kiterjeszteni kívánt osztályhoz tartozó adaptert.
A probléma ezzel az, hogy ha új kiegészítést akarunk felvenni(új fajta adapter), akkor módosítanunk kell az osztályt. Erre megoldás, ha létrehozunk egy IAdapterFactory-t és egy IAdapterManager-t(ez benne van az Eclipse-ben, szal ezt nem kell nekünk megírni), ahol az AdapterManager-be regisztálhatunk adaptereketé az AdapterFactoryból pedig a Object getAdapter(Object adaptableObject, Class adapterType) fv-n keresztül elkérhetjük a kiterjeszteni kívánt osztályhoz tartozó adaptert.
83. sor: 82. sor:
Hasonló, mint a Decorator, de ez nem ad plusz funkcionalitást az objektumhoz, csak elérhető/nem elérhetővé teszi azt.
Hasonló, mint a Decorator, de ez nem ad plusz funkcionalitást az objektumhoz, csak elérhető/nem elérhetővé teszi azt.


==9.3. Gyors összefoglaló==
==Gyors összefoglaló==


* Konténerek + komponensek -> Composite pattern
* Konténerek + komponensek -> Composite pattern
91. sor: 90. sor:
* JTree-nél Null Object pattern
* JTree-nél Null Object pattern
* SortedSet -> Comparator pattern
* SortedSet -> Comparator pattern
* !Chatserver, SAX eseményvezérlése -> Callback pattern
* Chatserver, SAX eseményvezérlése -> Callback pattern
* Bankfiók életciklus -> Factory pattern
* Bankfiók életciklus -> Factory pattern
* RMI stub, szövegszerkesztő -> Proxy pattern
* RMI stub, szövegszerkesztő -> Proxy pattern
* Beágyazott mobil Java ME eseménykezelője (registry miatt)-> Whiteboard pattern
* Beágyazott mobil Java ME eseménykezelője (registry miatt)-> Whiteboard pattern
* java.concurrent.CopyOnWriteArrayList -> Composite
* java.util.Comparator -> Strategy
* java.rmi.server.RemoteStub -> Proxy
* javax.swing.GroupLayout.ParalellGroup -> Strategy


-- [[SallaiTamas|sashee]] - 2009.05.19. <br />
-- [[SallaiTamas|sashee]] - 2009.05.19. <br />
100. sor: 103. sor:
-- [[FelberPeter|Eff]] - 2010.06.12.
-- [[FelberPeter|Eff]] - 2010.06.12.


--[[Szerkesztő:Ferrero|Szabó Csaba]] ([[Szerkesztővita:Ferrero|vita]]) 2012. december 17., 22:44 (CET)


[[Category:Infoszak]]
[[Category:Infoszak]]