Nada

^ Upp till kursens hemsida.

Papperskopior av OH-bilderna kan beställas från kursledaren, ring eller maila!
Där finns mer föklaringar kring och till programmen.

Program 3/5

Demonstration av JUnit för testning av klasser: Testprogram för klassen BankAccount:
BankAccountTest.java
Klassen som testas: BankAccount.java

En del kod för lyssnarklasser gicks igenom men inga körbara program.
Koden är kort och går fort att skriva av från OH-bilderna för den som vill testa.

Program 4/5

Mönstret Singleton i två versioner: Singleton.java Singleton1.java
Test av Singleton med JUnit. TestSimpleSingleton.java

Exempel på Template Method: En abstrakt klass för numerisk integrering.
Funktionen som ska integreras deklareras abstrakt: Integrator.java
I följande subklass till Integrator definieras funktionen som ska integreras.
En mainmetod skapar ett objekt av Integratorn och gör några beräkningar:
X2Integrator.java

Program 5/5

Klassen Integrator ändrades så att den istället följer mönstret Strategy.
Funktionen som ska integreras definieras av ett interface IFunc och Integratorklassen
får ett objekt av denna typ där aktuell funktion att integrera definieras.
Integratorklassen: Integrator.java
Gränssnittet IFunc: IFunc.java
Här är tre implementationer av gränssnittet IFunc: Funktionerna.java
Här är ett testprogram. Ett Integratorobjekt och objekt av alla tre funktionsklasserna skapas
och funktioner integreras. TestIntegrator1.java

Här är en annan variant av testprogram med färre klasser. Anonyma inre klasser används
för funktionsobjekten. TestIntegrator2.java

Demonstration av mönstret Decorator (titta på OH-bilderna också!):
Abstrakta klassen som både Component och Decorator ärver från:
AComponent.java
Component: Component.java
Decorator: Decorator.java
Konkreta dekoratorer: DecoA.java DecoB.java
Till sist testprogrammet: Test.java

Program 6/5

Litet exempel på Abstract Factory (titta på OH-bilderna samtidigt!)
Vi har tre olika färger i hierarki med abstrakta klassen Färg och tre olika prylar med abstrakta klassen Pryl:
Farg.java  Rosa.java  Svart.java  Grön.java
Pryl.java  Dockhus.java  RymdStation.java  Cykel.java
En abstrakt fabrik AFabrik.java och tre konkreta fabriker som vardera skapar en kombination av
färg och pryl med en viss stil. FlickSymbolFabrik.java   PojkSymbolFabrik.java   NeutralSymbolFabrik.java
Klassen Reklam använder en Symbolfabrik för att göra ett "reklamblad" och testprogrammet gör
tre olika reklamblad, ett för varje konkret fabrik:
Reklam.java  Test1.java

Den abstrakta fabriken kan istället vara en konkret fabrik med ett standardbeteende som kan ändras
i subklasser. Här låter vi standardbeteendet vara det som implementeras i den neutrala fabriken ovan,
dvs GRÖN och CYKEL. De två andra fabrikerna definieras som subklasser:
Fabrik.java  FlickSymbolFabrik2.java   PojkSymbolFabrik2.java
Reklamklass och testklass med den senare varianten på Fabrik:
Reklam2.java  Test2.java

En enkel Factory-variant där färger skapas från namnet:
interface, fabriksklass och testprogram:
FärgFabrikInterface2.java   FärgFabrik2.java   TestFF2.java

Vi gick igenom delar av ett program med två trådar som väntar (kontrollerat) på varandra,
ett producent-konsument problem.
Metoderna wait och notify (som finns i klassen Object) används. Se OH-bilderna!

En fil på annan eller på egna datorn läses m.h.a URL och inström: URLTest.java
Serverprogrammet som ger uppmuntrande kommentarer: Muntra.java