سؤال

I'm looking to use the command pattern in a distributed client/server environment. Essentially, the receivers 'execute' methods will need to take various parameters, however I read that each command class should have a uniform 'execute' method that should reveal nothing about the underlying functionality of the receivers.

My question is, how can I pass invocation parameters from switches into the different receivers via the command classes? Has anyone got a simple Java example? I can't seem to find any

Thanks indeed for your help.

هل كانت مفيدة؟

المحلول

Just pass them upon construction of the command instance.

public class ConcreteCommand implements Command {

    private Object something;

    public ConcreteCommand(Object something) {
        this.something = something;
    }

    @Override
    public void execute() {
        // ...
    }

}

Or if you really need to pass arguments (because they represent the work state and not the algorithm state), then you should just do so and call it "strategy pattern" instead ;)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top