Command Pattern Encapsulate request as an object Object-oriented callback Decouple sender from processor Often used for "undo" action Design Object per command Command interface execute method undo method Use reflexion Main public static void main(String[] args ) { //Receiver - (Action) LightReceiver lc = new LightReceiver(); //OnCommand = concrete command Command c = new OnCommand( lc ); //Invoker - (Execute) SwitchInvoker si = new SwitchInvoker(); si .storeAndExecute( c ); } Receiver public class LightReceiver { public void on(){ System. out .println( "Light is on" ); } public void off(){ System. out .println( "Light is off" ); } } Invoker public class SwitchInvoker { public void storeAndExecute( Command command ){ command .execute(); } } Command public interface Command {...