The typical organization of the Command pattern can be described as follows: Command: This is the object encapsulating the information necessary to invoke a method or function. Client: This creates the Command and provides it to the Invoker. Invoker: This is responsible for executing the Command on the Target. Target (or Receiver): This is the subject of the invocation. It can be a lone function or the method of an object.