F
frager
Gast
hi, ich frag mich gerade, wo GENAU der unterschied liegt. im prinzip macht man doch bei command sowas:
wenn ich jetzt ans klassendiagramm von strategy denke, ist das doch genau so?
liegt der unterschied darin, dass in der execute methode vom command nicht die funktionalität ist? eigentlich könnte man ja aber sagen, sie ist da, denn was ich da mache, ist ja auch funktionalität?
noch ein beispiel:
ist doch das gleiche, oder? bei beiden ist wäre funktionalität vom invoker gekapselt?!
vielen dank
Code:
interface Command{
public void execute();
}
class Command1 implements Command{
public void execute(){
//....
}
}
class Command2 implements Command{
public void execute(){
//....
}
}
wenn ich jetzt ans klassendiagramm von strategy denke, ist das doch genau so?
Code:
interface MyReader{
public void read();
}
class XMLReaderimplements MyReader{
public void read(){
//....
}
}
class ZIPReader implements MyReader{
public void read(){
//....
}
}
liegt der unterschied darin, dass in der execute methode vom command nicht die funktionalität ist? eigentlich könnte man ja aber sagen, sie ist da, denn was ich da mache, ist ja auch funktionalität?
noch ein beispiel:
Code:
class Light{
public void on(){
}
}
class LightCommand implements Command{
public LightCommand(Light light){...}
public void execute(){
light.on();
}
}
//oder eben per strategy
class LightStrategy implements Strategy{
public LightStrategy(Light light){...}
public void switchOn(){
light.on();
}
}
ist doch das gleiche, oder? bei beiden ist wäre funktionalität vom invoker gekapselt?!
vielen dank