O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

Patrón Prototype

DICSOR YENCI HERNÁNDEZ RUÍZ Ingenieria del Software Espanhol

Conteúdo do mapa

Patrón Prototype

  1. “Especificar el tipo de objetos que se crearán utilizando una instancia prototipada y crear nuevos objetos realizando copias de ese prototipo.”

  2. El concepto de este patrón es simple: en lugar de crear un objeto, se clona, es decir, se realiza una copia exacta de otro objeto dado, denominado prototipo.

  3. Entran en juego tres elementos:

    • Cliente: clase que solicita al prototipo que se clone.
    • IPrototipo: interfaz o clase abstracta que define la operación de clonado.
    • PrototipoConcreto: implementa IPrototipo y su método Clone() para proceder al clonado del objeto.
  4. Implementación del patrón

    • En .NET este proceso es sencillo, ya que nos ofrece la interfaz ICloneable que expone el método Clone(), método en el que habrá que codificar el proceso de copia.
      • Además de ofrecer el método Clone(), .NET también ofrece un método, MemberwiseClone(), que automáticamente realiza una copia del objeto por nosotros, evitándonos el proceso de copiar elemento por elemento de forma manual.
  5. Clonación superficial y clonación profunda

    • Cuando invocamos el método MemberwiseClone() observamos que en su descripción indicaba que se realizaba una clonación shallow o superficial. Esto significa que el clonado se realiza a nivel de bits, por lo que los objetos contenidos dentro del objeto a clonar no se clonarán también, sino que se clonará únicamente la referencia del objeto. Por lo tanto, ambos objetos clonados apuntarán al mismo objeto. Esto es lo que se conoce como clonación superficial. El proceso por el cual se clonan los objetos incluidos en el objeto a clonar en lugar de copiar sus referencias se denomina clonación profunda.
  6. ¿Cuándo utilizar este patrón?

    • Este patrón está indicado en los casos en los que el coste de generar una nueva instancia sean altos en comparación al coste de realizar una copia de una instancia ya existente. Por ejemplo, imaginemos que tenemos una clase que se encarga de almacenar datos de una sesión web. Al instanciar esta clase, el objeto se comunica con un servidor externo para realizar un proceso de autenticación mediante unas credenciales. Este proceso es costoso, por lo que si a lo largo de la ejecución del programa fuese necesario instanciar un nuevo objeto con los mismos datos, el proceso de instanciación requerirá consumir una gran cantidad de recursos. Sería más sencillo realizar una copia exacta del objeto anterior, evitando de este modo acceder a un servidor externo.
      • Un escenario real en el que se suele utilizar este patrón suele ser el de la clonación de figuras en programación 2D/3D, así como el de paletas de colores.

Informações

Descrição
Ingenieria del Software Mapa Mental sobre Patrón Prototype, criado por DICSOR YENCI HERNÁNDEZ RUÍZ em 12-05-2018.
Visualizações
1
Avaliação

Mais sobre Patrones de diseño

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?