El objetivo del patrón Chain of Responsibility es permitir que múltiples objetos manejen una solicitud sin especificar explícitamente cuál de ellos lo hará. Esto crea una cadena de objetos receptores y pasa la solicitud a lo largo de la cadena hasta que un objeto la maneje.
El objetivo del patrón Command es encapsular una solicitud como un objeto, lo que permite parametrizar clientes con operaciones, poner operaciones en cola, registrar solicitudes y admitir la inversión de dependencia. En resumen, este patrón desacopla el objeto que invoca la acción del objeto que la realiza.