public final class Strikker extends Thread { // vil ikke ha subklasser av Strikker, bruker final private static Strikker instans; // vi deklarerer en instans av oss selv, forel?pig null public Spinneri spinneri; // tr?den bruker to monitorer public Strikkeklubb strikkeklubb; public String navn; // Et eksempel p? designm?nsteret Singleton private Strikker(String navn, Spinneri spinneri, Strikkeklubb strikkeklubb) { // konstrukt?ren er private slik at vi ikke kan opprette en instans utenfra klassen this.spinneri = spinneri; this.strikkeklubb = strikkeklubb; this.navn = navn; } // metoden m? v?re static for at vi skal kunne kalle den utenfra klassen uten en instans av klassen (uten et Strikker-objekt) public static Strikker hentInstans(String navn, Spinneri spinneri, Strikkeklubb strikkeklubb) { // m? ta inn samme parametre som konstrukt?ren til klassen if (instans == null) { instans = new Strikker(navn, spinneri, strikkeklubb); // oppretter hvis vi ikke allerede har en instans } return instans; // returnerer alltid den samme instansen } @Override public void run() { if (spinneri.kjoepGarn()) { // en enkel oppgave, skal bare gj?re den ¨Śn gang System.out.println("Woho! Lykke! Du har f?tt kj?pt gaarn!"); strikkeklubb.strikkKumulusBluse(navn); } } }