1)
A: Observer B: Strategy C: Proxy
D: Decorator E: Facade
2a) Alla programmets (eller programdelens) funktioner beskrivs i testfall. Alla testfall skrivs före koden. När testfallen uppfylls är programmet/programdelen klart. 2b) Förbättring av programkoden utan att programmets funktion eller gränssnitt ändras.
3)
4a) Composite
4b) Anrop av superklassens konstruktor 5) B och D är korrekta. 6a) D är det alternativ som inte går att kompilera eftersom Car är en subklass till Vehicle. Typen för variabeln måste vara Vehicle eller något som är ovanför Vehicle i typhierarkin. 6b) C och D går att kompilera. Objekttyper som passar som parameter till search() är Motorvehicle och dess subklasser, t.ex. Car.
7) Klassen A måste implementera
interfacet Comparable eller ännu hellre
Comparable<A>. Klassen måste ha en metod
som anger ordningen mellan två A-objekt genom att
returnera ett heltal som är negativt, noll (vid likhet) eller positivt.
8) Rätta svar är A, C, E och F.
9) Den nya klassen kan ärva från den ena av U1
och U2 och skapa ett objekt av den andra. Det går också bra att låta
bli att ärva och skapa objekt av både U1 och U2. Man behöver inte skapa
objekt av U3 då metoden som ska användas är static.
10) En fabriksmetod anropas för att ge objekt av en klass istället för att användaren skapar objekten med new. Vanliga tillämpningar är att användaren av klassen inte får (eller inte ska behöva) välja subklass. Det sköts inuti fabriksmetoden. En annan tillämpning är när man vill ka flera konstruktorer med samma signatur. En fabriksmetod måste vara static. Det måste gå att anropa fabriksmetoden utan att först skapa objekt ur klassen och då är static nödvändigt. Konstruktorn brukar vara private. 11) Klassen Integer implementerar Comparable<Integer> enligt den naturliga ordningen för heltal. Det betyder att om man sorterar en lista med Integer-objekt så kommer objekten att ordnas i stigande ordning. Lösningen på det givna problemet är att skriva en Comparator eller närmare bestämt en klass som implementerar interfacet Comparator<Integer> och anropa sorteringsmetoden Collections.sort(intList, dcomp) där dcomp är komparatorobjektet, ett objekt av följande klass:
12) Klass nr 1, PointHandler är en
Observable
|