【发布时间】:2021-08-29 06:09:34
【问题描述】:
我已经做了这四个类,我想知道我是否正确使用了模板方法设计模式,因为我真的在这个主题上苦苦挣扎。
我使用 getPrijsBehandeling() 和 getBeschrijvingBehandeling() 方法作为我的抽象类。
我还想知道是应该在我的 UML 中还是只在代码中使用抽象方法。
由于这是我第一次使用设计模式,我想知道我是否走在正确的轨道上。
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;
}
}
【问题讨论】:
-
一开始我以为这是一种治疗方法,但从我的德语中猜测它是理发器的设计。芬xD
-
SO 不是为了评论,而是为了具体问题。粗略查看您的代码,我没有发现任何问题。
标签: java inheritance design-patterns uml template-method-pattern