import java.util.ArrayList; interface Investor { void oppdater(Aksje akjse, double pris); } class KonkretInvestor implements Investor { private String navn; KonkretInvestor(String navn) { this.navn = navn; } @Override public void oppdater(Aksje aksje, double nyPris) { System.out.println("Investor " + navn + " ble oppdatert om " + aksje.hentNavn() + " med ny pris " + nyPris); } } class Aksje { private String navn; private double pris; private ArrayList investorer = new ArrayList<>(); public Aksje(String navn, double pris) { this.navn = navn; this.pris = pris; } public String hentNavn() { return navn; } public void addInvestor(Investor investor) { investorer.add(investor); } public void settNyPris(double nyPris) { pris = nyPris; for(Investor i : investorer) { i.oppdater(this, nyPris); } } } class AksjemarkedMonitor { public static void main(String[] args) { Aksje apple = new Aksje("Apple", 150.0); Aksje microsoft = new Aksje("Microsoft", 200.5); Investor mari = new KonkretInvestor("Mari"); Investor ola = new KonkretInvestor("Ola"); apple.addInvestor(mari); apple.addInvestor(ola); microsoft.addInvestor(mari); apple.settNyPris(200.8); microsoft.settNyPris(250.2); } }