in

Patrón de diseño: preguntas de la entrevista


Estimados lectores, estos Preguntas de entrevista sobre patrones de diseño han sido diseñados especialmente para familiarizarlo con la naturaleza de las preguntas que puede encontrar durante su entrevista para el tema de Patrón de diseño. Según mi experiencia, los buenos entrevistadores difícilmente planean hacer una pregunta en particular durante su entrevista, normalmente las preguntas comienzan con algún concepto básico del tema y luego continúan en base a una discusión adicional y lo que usted responde:

Los patrones de diseño representan las mejores prácticas utilizadas por desarrolladores de software orientados a objetos con experiencia. Los patrones de diseño son soluciones a los problemas generales que enfrentan los desarrolladores de software durante el desarrollo de software. Numerosos desarrolladores de software obtuvieron estas soluciones mediante ensayo y error durante un período de tiempo considerable.

En 1994, cuatro autores Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides publicaron un libro titulado Design Patterns – Elements of Reusable Object-Oriented Software que inició el concepto de Design Pattern en el desarrollo de software. Estos autores se conocen colectivamente como Gang of Four (GOF).

Los patrones de diseño se pueden clasificar en tres categorías: patrones de creación, estructurales y de comportamiento.

  • Patrones de creación – Estos patrones de diseño proporcionan una forma de crear objetos mientras se oculta la lógica de creación, en lugar de instanciar objetos directamente utilizando el nuevo opreator. Esto le da al programa más flexibilidad para decidir qué objetos deben crearse para un caso de uso dado.

  • Patrones estructurales – Estos patrones de diseño se refieren a la composición de clases y objetos. El concepto de herencia se utiliza para componer interfaces y definir formas de componer objetos para obtener nuevas funcionalidades.

  • Patrones de comportamiento – Estos patrones de diseño se refieren específicamente a la comunicación entre objetos.

Estos patrones de diseño se refieren específicamente al nivel de presentación. Sun Java Center identifica estos patrones.

El patrón de fábrica es uno de los patrones de diseño más utilizados en Java. Este tipo de patrón de diseño se incluye en el patrón de creación, ya que este patrón proporciona una de las mejores formas de crear un objeto.

En el patrón Factory, creamos un objeto sin exponer la lógica de creación al cliente y nos referimos al objeto recién creado usando una interfaz común.

Los patrones de Abstract Factory funcionan alrededor de una superfábrica que crea otras fábricas. Esta fábrica también se denomina fábrica de fábricas. Este tipo de patrón de diseño se incluye en el patrón de creación, ya que este patrón proporciona una de las mejores formas de crear un objeto.

En el patrón Abstract Factory, una interfaz es responsable de crear una fábrica de objetos relacionados sin especificar explícitamente sus clases. Cada fábrica generada puede dar los objetos según el patrón de fábrica.

El patrón singleton es uno de los patrones de diseño más simples de Java. Este tipo de patrón de diseño se incluye en el patrón de creación, ya que este patrón proporciona una de las mejores formas de crear un objeto.

Este patrón involucra una sola clase que es responsable de crear un objeto mientras se asegura de que solo se cree un objeto. Esta clase proporciona una forma de acceder a su único objeto al que se puede acceder directamente sin necesidad de instanciar el objeto de la clase.

Es un proceso de dos pasos. Primero, haga que el constructor sea privado para que no se pueda usar un operador nuevo para crear una instancia de la clase. Devuelve un objeto del objeto si no es nulo; de lo contrario, crea el objeto y devuelve el mismo a través de un método.

A continuación se muestran las diferencias entre una clase estática y una clase singleton.

  • Una clase estática no puede ser una clase de nivel superior y no puede implementar interfaces donde una clase singleton puede hacerlo.

  • Todos los miembros de una clase estática son estáticos, pero para una clase Singleton no es un requisito.

  • Una clase estática se inicializa cuando se carga, por lo que no se puede cargar de forma diferida donde una clase singleton se puede cargar de forma diferida.

  • Un objeto de clase estática se almacena en la pila, mientras que el objeto de clase individual se almacena en el espacio de memoria del montón.

Lanza una excepción dentro del cuerpo del método clone ().

A continuación se muestran algunos de los patrones de diseño que se utilizan en la biblioteca JDK.

  • Las clases de Wrapper utilizan el patrón Decorator.

  • El patrón Singleton lo utilizan las clases de calendario en tiempo de ejecución.

  • El patrón de fábrica lo usa la clase Wrapper como Integer.valueOf.

  • El patrón de observador es utilizado por marcos de manejo de eventos como swing, awt.

El patrón de fábrica encapsula los detalles de implementación y la implementación subyacente se puede cambiar sin ningún impacto en la API de llamadas.

El patrón de constructor construye un objeto complejo usando objetos simples y usando un enfoque paso a paso. Este constructor es independiente de otros objetos.

El patrón de prototipo se refiere a la creación de un objeto duplicado teniendo en cuenta el rendimiento. Este patrón implica la implementación de una interfaz de prototipo que le dice que cree un clon del objeto actual.

Este patrón se utiliza cuando la creación de un objeto directamente es costosa. Por ejemplo, un objeto debe crearse después de una costosa operación de base de datos. Podemos almacenar en caché el objeto, devolver su clon en la próxima solicitud y actualizar la base de datos cuando sea necesario, reduciendo así las llamadas a la base de datos.

El patrón de adaptador funciona como un puente entre dos interfaces incompatibles. Este patrón involucra una sola clase que se encarga de unir funcionalidades de interfaces independientes o incompatibles.

Un ejemplo de la vida real podría ser el caso de un lector de tarjetas que actúa como adaptador entre la tarjeta de memoria y una computadora portátil. Conecta la tarjeta de memoria al lector de tarjetas y el lector de tarjetas a la computadora portátil para que la tarjeta de memoria se pueda leer a través de la computadora portátil.

Bridge se utiliza cuando necesitamos desacoplar una abstracción de su implementación para que las dos puedan variar de forma independiente. Este tipo de patrón de diseño viene bajo patrón estructural ya que este patrón desacopla la clase de implementación y la clase abstracta al proporcionar una estructura de puente entre ellas.

Este patrón involucra una interfaz que actúa como un puente que hace que la funcionalidad de clases concretas sea independiente de las clases implementadoras de interfaz. Ambos tipos de clases pueden modificarse estructuralmente sin que se afecten entre sí.

El patrón de filtro o patrón de criterios es un patrón de diseño que permite a los desarrolladores filtrar un conjunto de objetos utilizando diferentes criterios y encadenarlos de forma desacoplada a través de operaciones lógicas. Este tipo de patrón de diseño se incluye en el patrón estructural, ya que este patrón combina múltiples criterios para obtener criterios únicos.

El patrón compuesto se usa cuando necesitamos tratar un grupo de objetos de manera similar como un solo objeto. El patrón compuesto compone objetos en términos de una estructura de árbol para representar una parte y una jerarquía completa. Este tipo de patrón de diseño viene bajo patrón estructural ya que este patrón crea una estructura de árbol de grupo de objetos.

Este patrón crea una clase que contiene un grupo de sus propios objetos. Esta clase proporciona formas de modificar su grupo de mismos objetos.

El patrón de decorador permite al usuario agregar una nueva funcionalidad a un objeto existente sin alterar su estructura. Este tipo de patrón de diseño se incluye en el patrón estructural, ya que este patrón actúa como un envoltorio para la clase existente.

Este patrón crea una clase decoradora que envuelve la clase original y proporciona funcionalidad adicional manteniendo intacta la firma de los métodos de clase.

El patrón de fachada oculta las complejidades del sistema y proporciona una interfaz al cliente mediante la cual el cliente puede acceder al sistema. Este tipo de patrón de diseño viene bajo patrón estructural ya que este patrón agrega una interfaz al sistema existente para ocultar sus complejidades.

Este patrón involucra una sola clase que proporciona métodos simplificados requeridos por el cliente y delega llamadas a métodos de clases de sistema existentes.

El patrón Flyweight se utiliza principalmente para reducir la cantidad de objetos creados y para disminuir la huella de memoria y aumentar el rendimiento. Este tipo de patrón de diseño se incluye en el patrón estructural, ya que este patrón proporciona formas de disminuir el recuento de objetos, mejorando así la estructura del objeto de aplicación.

El patrón Flyweight intenta reutilizar objetos de tipo similar ya existentes almacenándolos y crea un objeto nuevo cuando no se encuentra ningún objeto coincidente.

En el patrón de proxy, una clase representa la funcionalidad de otra clase. Este tipo de patrón de diseño viene bajo patrón estructural.

En el patrón de proxy, creamos un objeto que tiene un objeto original para interconectar su funcionalidad con el mundo exterior.

Como sugiere el nombre, el patrón de cadena de responsabilidad crea una cadena de objetos receptores para una solicitud. Este patrón desacopla al remitente y al receptor de una solicitud según el tipo de solicitud. Este patrón viene bajo patrones de comportamiento.

En este patrón, normalmente cada receptor contiene una referencia a otro receptor. Si un objeto no puede manejar la solicitud, pasa la misma al siguiente receptor y así sucesivamente.

El patrón de comando es un patrón de diseño basado en datos y se incluye en la categoría de patrón de comportamiento. Una solicitud se envuelve debajo de un objeto como comando y se pasa al objeto invocador. El objeto invocador busca el objeto apropiado que puede manejar este comando y pasa el comando al objeto correspondiente que ejecuta el comando.

El patrón de intérprete proporciona una forma de evaluar la gramática o la expresión del lenguaje. Este tipo de patrón viene bajo un patrón de comportamiento. Este patrón implica implementar una interfaz de expresión que indica interpretar un contexto particular.

Este patrón se utiliza en el análisis de SQL, el motor de procesamiento de símbolos, etc.

El patrón de iterador es un patrón de diseño muy utilizado en el entorno de programación Java y .Net. Este patrón se utiliza para obtener una forma de acceder a los elementos de un objeto de colección de manera secuencial sin necesidad de conocer su representación subyacente. El patrón de iterador se incluye en la categoría de patrón de comportamiento.

A continuación se muestran las entidades de este tipo de patrón de diseño.

  • Servicio – Servicio real que tramitará la solicitud. La referencia de dicho servicio debe consultarse en el servidor JNDI.

  • Contexto / Contexto inicial – El contexto JNDI lleva la referencia al servicio utilizado para fines de búsqueda.

  • Localizador de servicios – Service Locator es un único punto de contacto para obtener servicios mediante búsqueda JNDI almacenando en caché los servicios.

  • Cache – Caché para almacenar referencias de servicios para reutilizarlos.

  • Cliente – Cliente es el objeto que invoca los servicios a través de ServiceLocator.

El patrón de mediador se utiliza para reducir la complejidad de la comunicación entre varios objetos o …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple watch en muneca

¿Cómo activar y desactivar el modo avión en Apple Watch? – Paso a paso

apple touch icon@2

javascript – Cómo resolver ‘Redirect ha sido bloqueado por la política CORS: No hay encabezado’ Access-Control-Allow-Origin »?