Ich habe einen Editor erstellt, der verschiedene Elemente kreieren kann. Für das Gebiet Color hab ich Strategy Pattern benutzt. Im Editor kann der User nun zwischen hex oder rgb eingabe wählen. Wie kann ich die changeColor Methode implementieren, dass jeweils nur gültig werte eingelesen werden können?
Java:
package src.main.java.decorator;
import src.main.java.factory.Element;
import src.main.java.strategy.ColorStrategy;
public class Color extends ElementDecorator {
public Color(Element element) {
super(element);
}
ColorStrategy strategy;
public void setStrategy(ColorStrategy strategy)
{
this.strategy = strategy;
}
public ColorStrategy getStrategy()
{
return strategy;
}
@Override
public String getSvg() {
return element.getBaseSvg() + element.getStyle() + element.getEndTag();
}
@Override
public String getStyle() {
System.out.println("adding color");
return element.getStyle() + " fill: " + element.getColor() + "; ";
}
}
Java:
package src.main.java.strategy;
import src.main.java.decorator.Color;
public interface ColorStrategy {
Color changeColor();
String getStrategy();
}
Java:
package src.main.java.strategy;
import src.main.java.decorator.Color;
public class HexColorStrategy implements ColorStrategy {
public Color color;
public HexColorStrategy(Color color){
this.color = color;
}
public String getStrategy(){
return "HexColor";
}
public Color changeColor(){
return this.color;
}
}
Java:
package src.main.java.strategy;
import src.main.java.decorator.Color;
public class RGBColorStrategy implements ColorStrategy {
private Color color;
public RGBColorStrategy(Color color){
this.color = color;
}
public String getStrategy(){
return "RGBColor";
}
public Color changeColor(){
Color x= new Color()
return this.color;
}
}
Zuletzt bearbeitet von einem Moderator: