Hi!
Ich möchte mal ein kleines Beispiel eines Dekorator-Patterns implementieren!
Leider ist das Ergebnis aber nicht das, was ich mir erhofft habe!
KAnn mir da bitte jemand weiterhelfen?
//Oberklasse :Component
//Concrete Component
//Dekorator
//ConcreteDekoratorA
//ConcreteDekoratorB
//Testklasse
Danke!
Ich möchte mal ein kleines Beispiel eines Dekorator-Patterns implementieren!
Leider ist das Ergebnis aber nicht das, was ich mir erhofft habe!
KAnn mir da bitte jemand weiterhelfen?
//Oberklasse :Component
Code:
public abstract class OutputMoney {
public abstract String getText();
}
//Concrete Component
Code:
public class EurOutput extends OutputMoney{
double zahl;
String text;
public EurOutput(){
this.text="";
}
public String getText() {
return text;
}
/*
public double getZahl(){
return zahl;
}
public void setZahl(double zahl){
this.zahl=zahl;
}*/
public void appendText(String article, double zahl){
text=text+article+ "kostet"+ zahl;
}
}
//Dekorator
Code:
public abstract class MoneyDekorator extends OutputMoney {
OutputMoney output;
public MoneyDekorator(OutputMoney component){
output=component;
}
public OutputMoney getComponent(){
return output;
}
}
//ConcreteDekoratorA
Code:
public class AddEuroDekorator extends MoneyDekorator{
String euro="";
public AddEuroDekorator(OutputMoney component){
super(component);
euro=" EURO";
}
public String getText() {
return getComponent()+getText()+ euro;
}
}
//ConcreteDekoratorB
Code:
public class PointDekorator extends MoneyDekorator{
String point="";
public PointDekorator(OutputMoney component) {
super(component);
point=",-";
}
public String getText() {
return getComponent()+getText()+point;
}
}
//Testklasse
Code:
public class EuroTest {
public static void main(String [] args){
EurOutput test1=new EurOutput();
test1.appendText("Tennisschläger", 26);
OutputMoney money=new AddEuroDekorator(test1);
System.out.println(money.getText());
}
}
Danke!