Chain of Responsibility: Forces
You want an object to be able to send a command to another object without specifying the receiver.
More than one object may be able to receive and handle a command. You need a way to prioritize among the receivers without the sending object knowing anything about them.