„Objektumorientált szoftvertervezés - Vizsga, 2008.05.27.” változatai közötti eltérés
Új oldal, tartalma: „{{GlobalTemplate|Infoszak|OotVizsga20080527}} ===OO Vizsga 2008-05-27=== __TOC__ ====01. Van az ObjectOutput interfész és abban egy writeObject metódus, illetve v…” |
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 3 másik szerkesztő végzett, nincs mutatva) | |||
| 1. sor: | 1. sor: | ||
===OO Vizsga 2008-05-27=== | ===OO Vizsga 2008-05-27=== | ||
__TOC__ | __TOC__ | ||
==== | ====Van az ObjectOutput interfész és abban egy writeObject metódus, illetve van egy saját osztályunk (XClass), amiben szintén lehet writeObject metódus. Mi az ObjectOutput és az XClass közötti viszony? (2p)==== | ||
* | * XClass függ az ObjectOutput interface-től. | ||
* Perzisztencia 20 és 26 dia: Az új diasorban ez az ábra megváltozott, és nincs nyíl köztük, de az ObjectOutput megvalósítása az ObjectOutputStream, amitől viszont függ a MyClass. -- [[MetykoCecilia|Ciana]] - 2010.06.11. | * Perzisztencia 20 és 26 dia: Az új diasorban ez az ábra megváltozott, és nincs nyíl köztük, de az ObjectOutput megvalósítása az ObjectOutputStream, amitől viszont függ a MyClass. -- [[MetykoCecilia|Ciana]] - 2010.06.11. | ||
| 15. sor: | 12. sor: | ||
==== | ====Van egy Car osztály, aminek perzisztens példányait az Objectstore adatbázis db példányában tárolunk mycars root alatt. Volt a Car-nak vmi privát int változója és az azt visszaadó metódus ( getXXX() ). Egészítse ki a következő 3 sort úgy hogy a result-ban azok a car példányok legyenek melyek int változója kisebb mint 20000.(6p)==== | ||
Query q = ... | Query q = ... | ||
| 29. sor: | 26. sor: | ||
</pre> | </pre> | ||
==== | ====Volt 3 darab ábra, amin Thread Session és Database példányok kapcsolatai voltak feltüntve különbözőképpen. Ezeket kellett jellemezni (3p) (Volt köztük egy olyan is ahol egy Thread két Sessionhöz kapcsolódott, ami ha jól tévedek helytelen!)==== | ||
Jegyzetből: | Jegyzetből: | ||
[[File:OotVizsga20080527_thrdsssn.jpg]] | |||
==== | ====Mi a discriminator tag, mi a szerepe? (2p)==== | ||
* Akkor használjuk ha hibernate-tel több osztály példányait tároljuk egy táblában. A discriminator tag a leíró xml-ben van, azt mondja meg mi legyen a neve annak az oszlopnak, ami az adott sor típusát jelzi. | * Akkor használjuk ha hibernate-tel több osztály példányait tároljuk egy táblában. A discriminator tag a leíró xml-ben van, azt mondja meg mi legyen a neve annak az oszlopnak, ami az adott sor típusát jelzi. | ||
* (Alapból az osztály FQN-je jelöli a típust (com.example.Valami), de a discriminator-value tag-gel ez felülírható.) | * (Alapból az osztály FQN-je jelöli a típust (com.example.Valami), de a discriminator-value tag-gel ez felülírható.) | ||
==== | <b>A discriminator tag a hibernate table-per-class-hierarchy esetében adja meg, hogy az adott táblázat sorában milyen osztály szerepel</b> | ||
====Mivel térhet még vissza listán kívül a Hibernate Query? (2p)==== | |||
* objektum | * objektum | ||
* iterátor | * iterátor | ||
==== | ====Mikor procedurális a metódus kohézió? Miről lehet könnyen felismerni? (2p) -az első kérdés valószínűleg nem így volt fogalmazva ezt ne vegyétek készpénznek!-==== | ||
* instanceof (???) (ootervezes_metrics 13-as dia) | * instanceof (???) (ootervezes_metrics 13-as dia) | ||
| 56. sor: | 55. sor: | ||
Én erről azt találtam, hogy akkor procedurális a metódus kohézió, ha adott műveletet végez el különböző adatokon(pl. printf) | Én erről azt találtam, hogy akkor procedurális a metódus kohézió, ha adott műveletet végez el különböző adatokon(pl. printf) | ||
==== | ====Az Aktív objektum mintában mi a Future osztály szerepe? (2p)==== | ||
* Tárolja az eljáráshívás eredményét | * Tárolja az eljáráshívás eredményét | ||
| 64. sor: | 63. sor: | ||
* [http://www.paulbridger.com/active_object/ C++-os megvalósítás] | * [http://www.paulbridger.com/active_object/ C++-os megvalósítás] | ||
==== | ====Van A B C osztály, melyek megvalósítják a HC interfészt, és van V1 V2 osztály, melyek Visitor-ai a HC interfésznek (vagy az A B C osztályoknak nemtom hogy volt fogalmazva de értitek remélem). Rajzolja fel a Hagyományos Visitor mintának megfelelő osztálydiagramot ezek alapján és tüntesse fel a jellegzetes metódusokat is! (6p)==== | ||
* ooterv_metrics 63-as dia | * ooterv_metrics 63-as dia | ||
==== | ====Mit ír ki? Ha nem tévedek tökéletesen megegyezik a Java gyak mitírkijével. Volt egy A osztály privát f1 és f5 metódussal mely meghívja f1-t illetve volt B osztály mely származott A-ból szintén rendelkezett privát f1-el. A main-ben A a1 = new A(); a1.f5(); A a2 = new B(); a2.f5(); (2p) -Ha jól mondom akkor mindkettő A f1-t fog eredményezni- ==== | ||
!!! | !!! | ||
Nem lattam a feladatot, de ha jol ertem ez heterogen kollekcio pelda es kb igy nezhetett ki: | Nem lattam a feladatot, de ha jol ertem ez heterogen kollekcio pelda es kb igy nezhetett ki: | ||
| 100. sor: | 99. sor: | ||
(ez a heterogen kollekcio lenyege szerintem) | (ez a heterogen kollekcio lenyege szerintem) | ||
==== | ====Miért jelöli a Java nyelv a Thread stop resume és suspend metódusait deprecated-nek? (2p)==== | ||
A stop()-ot azért mert a leállított Thread foglalt monitorjai mind felszabadulnak, azonban lehet hogy valamely eddig monitorral védett objektum inkonzisztens állapotban marad, és így elérhető a többi thread számára. Ez kiszámíthatatlan hibákhoz vezethet, ezért ellenjavalt. | A stop()-ot azért mert a leállított Thread foglalt monitorjai mind felszabadulnak, azonban lehet hogy valamely eddig monitorral védett objektum inkonzisztens állapotban marad, és így elérhető a többi thread számára. Ez kiszámíthatatlan hibákhoz vezethet, ezért ellenjavalt. | ||
| 108. sor: | 107. sor: | ||
[http://java.sun.com/javase/6/docs/api/java/lang/Thread.html JavaDoc] | [http://java.sun.com/javase/6/docs/api/java/lang/Thread.html JavaDoc] | ||
==== | ====Mi a különbség a Java nyelv notify és notifyAll metódusai között? (2p)==== | ||
* notify(): felébreszt egyet az objektumon váró szálak közül, a felébresztett szál csak akkor folytathatja futását, ha a hívó szál kilépett a monitorból | * notify(): felébreszt egyet az objektumon váró szálak közül, a felébresztett szál csak akkor folytathatja futását, ha a hívó szál kilépett a monitorból | ||
| 115. sor: | 114. sor: | ||
mindkét esetben a szálnak az objektum monitorában kell lenni | mindkét esetben a szálnak az objektum monitorában kell lenni | ||
==== | ====Mi a különbség a Naming és a Trading Service között? (2p)==== | ||
* Naming Service - "telefonkönyv", nevekhez tárolja a szolgáltatót, hierarchikus névtér elengedhetetlen (pl. DNS) | * Naming Service - "telefonkönyv", nevekhez tárolja a szolgáltatót, hierarchikus névtér elengedhetetlen (pl. DNS) | ||
* Trading Service - "arany oldalak", szolgáltatások jegyzéke, megadhat plusz paramétereket is | * Trading Service - "arany oldalak", szolgáltatások jegyzéke, megadhat plusz paramétereket is | ||
==== | ====Távoli eljáráshívás esetén milyen problémákat jelenthetnek az összetett típusok? (4p)==== | ||
* deep copy szükséges minden esetben | * deep copy szükséges minden esetben | ||
| 126. sor: | 125. sor: | ||
* inout paraméterek kezelése | * inout paraméterek kezelése | ||
==== | ====A Java SecurityManager checkXXX metódusai milyen módon jelzik, ha a hozzáférést megtagadják? (1p)==== | ||
* elutasítás esetén SecurityExceptiont dobnak | * elutasítás esetén SecurityExceptiont dobnak | ||
==== | ====Implementáljon Java nyelven bináris szemafórt! (6p)==== | ||
<pre> | <pre> | ||
| 153. sor: | 152. sor: | ||
</pre> | </pre> | ||
==== | ====Ismertesse az elosztot garbage-collection-t! (4p)==== | ||
A távoli objektumokra a kliens oldali stub-oknak is van referenciájuk. Ha az objektum távoli referenciái megszűntek, az objektumot az RMI weak reference-ként tartja számon. | A távoli objektumokra a kliens oldali stub-oknak is van referenciájuk. Ha az objektum távoli referenciái megszűntek, az objektumot az RMI weak reference-ként tartja számon. | ||
| 180. sor: | 179. sor: | ||
</pre> | </pre> | ||
==== | ====Mondjon jellemzőket (jellemzőként 1-2 mondatban) a mobil ügynökre! (4p) -Erre volt egy nyúlfarknyi hely, nem igazán tudom mire gondolt Balázs erre a jellemzőkegykétmondatbankishelyen kérdéssel 4 pontért... és külön lapot nem lehetett beadni! ==== | ||
* A kliens által küldött objektum futtatható kódja nincs meg a szerveren | * A kliens által küldött objektum futtatható kódja nincs meg a szerveren | ||