Hallo zusammen,
ich möchte gerade nochmal das Decorator-Pattern verwenden. Dazu wollte ich Rückfragen, ob
1. das hier so sinnvoll ist wie ich mir das überlegt habe (oder was ihr alternativ nehmen würdet)
2. ob das so umsetzbar ist oder ich da etwas falsch gemacht habe.
Ich habe folgenden relevanten Code (hab den für den Kontext nicht wichtigen Kram rausgeschnibbelt):
zu 1: Ich dachte mir, wenn ich eine Route planen möchte anhand von Zielen, die ich bereits besucht habe, kann ich doch aus einer Liste von Location-Objekten auswählen und die einer neuen Route (mit einem festgelegten Startpunkt, z.B. dem Zuhause) zufügen. Sinnvoll?
zu 2: Bin mal wieder beim Aufbau etwas verunsichert. Ich kann das ganze nicht vernünftig testen, da noch so viel fehlt - aber irgendwo musste ich anfangen / weitermachen und da kam mir gerade spontan der Gedanke, das package Routenplanung fortzuführen. Aus Entwickler-Perspektive natürlich eine katastrophale Herangehensweise
.. Also ist das von der grundsätzlichen Art her richtig umgesetzt? und was mich am meisten verunsichert: Kann ich eine Abstrakte Klasse nehmen und dort "einfach" das interface RoutePlanner implementieren?
Würd mich über eine kurze Kontrolle freuen
Danke vorab und ein tolles baldiges Wochenende an euch alle.
ich möchte gerade nochmal das Decorator-Pattern verwenden. Dazu wollte ich Rückfragen, ob
1. das hier so sinnvoll ist wie ich mir das überlegt habe (oder was ihr alternativ nehmen würdet)
2. ob das so umsetzbar ist oder ich da etwas falsch gemacht habe.
Ich habe folgenden relevanten Code (hab den für den Kontext nicht wichtigen Kram rausgeschnibbelt):
Java:
public class Route implements RoutePlanner {
private ArrayList <Location> route;
public Route () {
route = new <Location> ArrayList ();
}
@Override
public void addDestination(Object location) {
route.add((Location) location);
}
@Override
public Object getRoute() throws Exception {
if (this.route.isEmpty()) {
throw new Exception ("Route has no content.");
}
else return route;
}
}
public abstract class RouteDecorator implements RoutePlanner {
protected Object route;
public RouteDecorator (Object route) {
this.route = route;
}
public ArrayList <Location> getRoute() {
return ((RouteDecorator) route).getRoute();
}
}
public interface RoutePlanner {
public void addDestination(Object location);
public Object getRoute() throws Exception;
}
public abstract class Location extends RouteDecorator {
public Location(Object route) {
super(route);
}
// hier kommen die Attribute, Getter und Setter)
public ArrayList <Location> getRoute() {
((RouteDecorator) route).getRoute().add((Location) route);
return ((RouteDecorator) route).getRoute();
}
}
//und noch ein Bspw. für eine Location, es gibt weitere
public class City extends Location {
public City(Object route) {
super(route);
}
private String parkingFacilities;
public String getParkingFacilities () {
return parkingFacilities;
}
public void setParkingFacilities (String parkingFacilities) {
this.parkingFacilities = parkingFacilities;
}
@Override
public void addDestination(Object location) {
// TODO Auto-generated method stub
}
}
zu 1: Ich dachte mir, wenn ich eine Route planen möchte anhand von Zielen, die ich bereits besucht habe, kann ich doch aus einer Liste von Location-Objekten auswählen und die einer neuen Route (mit einem festgelegten Startpunkt, z.B. dem Zuhause) zufügen. Sinnvoll?
zu 2: Bin mal wieder beim Aufbau etwas verunsichert. Ich kann das ganze nicht vernünftig testen, da noch so viel fehlt - aber irgendwo musste ich anfangen / weitermachen und da kam mir gerade spontan der Gedanke, das package Routenplanung fortzuführen. Aus Entwickler-Perspektive natürlich eine katastrophale Herangehensweise
Würd mich über eine kurze Kontrolle freuen
Danke vorab und ein tolles baldiges Wochenende an euch alle.