samedi 12 juin 2021

I have to use the template method design but I don't know if I did it right. Would appreciate if someone could check it :)

enter image description here

public abstract class Behandeling {

    private String beschrijving;
    private double prijs;
    private int behandelingsNummer;

    private Wassen wassen;

    public Behandeling(int behandelingsNummber, int keuze) {
        this.behandelingsNummer = behandelingsNummber;

        if(keuze == 3 || keuze == 4) {
            wassen = new Wassen();
        }
    }

    public abstract double getPrijsBehandeling();

    public abstract String getBeschrijvingBehandeling();

    public double getPrijs() {
        prijs = getPrijsBehandeling();

        if(wassen != null) {
            prijs += wassen.getPrijsBehandeling();
        }
        return prijs;
    }

    public String getBeschrijving() {
        beschrijving = getBeschrijvingBehandeling();

        if(wassen != null) {
            beschrijving += wassen.getBeschrijvingBehandeling();
        }
        return beschrijving;
    }

    public int getBehandelingsNummer() {
        return behandelingsNummer;
    }
} 

------------------------------------------

public class Verven extends Behandeling {

    public Verven(int behandelingsNummer, int keuze) {
        super(behandelingsNummer, keuze);
    }

    @Override
    public double getPrijsBehandeling() {
        return 20;
    }

    @Override
    public String getBeschrijvingBehandeling() {
        return "Haren worden geverfd";
    }
}

---------------------------------------------

public class Knippen extends Behandeling{

    public Knippen(int behandelingsNummer, int keuze) {
        super(behandelingsNummer, keuze);
    }

    @Override
    public double getPrijsBehandeling() {
        return 15;
    }

    @Override
    public String getBeschrijvingBehandeling() {
        return "Haren worden geknipt";
    }
}

-----------------------------------------------------

public class Wassen {

    private double prijs;
    private String beschrijving;

    public Wassen() {
        this.prijs = 7.50;
        this.beschrijving = " en haren worden gewassen";
    }

    public double getPrijsBehandeling() {
        return prijs;
    }

    public String getBeschrijvingBehandeling() {
        return beschrijving;
    }
}

Hello everyone!

I have made this four classes and I'm wondering if I used the template method design pattern correctly because I'm really struggeling with this subject.

I have used the methods getPrijsBehandeling() and getBeschrijvingBehandeling() as my abstract classes.

Also I'm wondering if I should use the abstract methods in my UML or only in the code.

Since this is the first time I'm using a design pattern any help and/or feedback would be very much appreciated! :D

kind regards,

Troviç

Aucun commentaire:

Enregistrer un commentaire