Design patterns

Command & Interpreter

$

Patrón de comportamiento en el cual un objeto es usado para representar y encapsular toda la información requerida para invocar un método en un tiempo posterior.

Command pattern

¿ Que información ?

El nombre del método, el objeto que posee el método y valores para los parametros del método.

Command pattern

Command pattern

  • Permite almacenar listas de código para sean ejecutadas luego o muchas veces.
  • El cliente quiere un comando especifico o una lista de código a ejecutar cuando execute() es llamado en un objeto encapsulado.
  • El objeto "Invoker" transfiere este comando a otro objeto llamado "Reciver" para ejecutar el código pertinente.

¿ Que busca este patrón ?

  • Promote "invocation of a method on an object" to full object status.
  • An object-oriented callback

Command pattern

¿ Cuando se debe usar?

  • Se necesiten colas o registros de mensajes.
  • Se deba tener la posibilidad de deshacer las operaciones realizadas.
  • Se quiera independizar el momento de petición del de ejecución.
  • El parámetro de una orden puede ser otra orden a ejecutar.

Command pattern

Command pattern

Command pattern

Interpreter pattern

  • Este patrón es normalmente ignorado
  • Es muy poco usado
  • Se utiliza para convertir una representación de datos en otra
  • Specialized database query languages such as SQL.

Interpreter pattern

  • El contexto contiene la información que sera interpretada
  • La expresión es una clase abstracta que define todos los métodos requeridos para hacer diferentes conversiones
  • La terminal o las expresiones concretas proveen conversiones especificas en diferentes tipos de dato.

Interpreter pattern

Made with Slides.com