Saltar al contenido

Las 30 preguntas principales de la entrevista sobre patrones de diseño de Java (2021)

septiembre 22, 2021
java design pattern interview questions

Preguntas de la entrevista sobre el patrón de diseño de Java

Los patrones de diseño son generalmente conjuntos de prácticas estandarizadas que se utilizan en la industria del desarrollo de software. Los Patrones de Diseño representan las soluciones dadas por la comunidad a los problemas generales que se enfrentan en las tareas diarias relacionadas con el desarrollo de software.

Echemos un vistazo a las preguntas más frecuentes. patrón de diseño preguntas y respuestas de la entrevista. Estas preguntas lo ayudarán con sus entrevistas de codificación, así como con los exámenes competitivos.

1) Categorías ¿Patrones de diseño de Java?

Basándonos en el análisis de problemas, podemos clasificar los patrones de diseño en las siguientes categorías.

Patrones de creación

  • Método / plantilla de fábrica
  • Fábrica abstracta
  • Constructor
  • Prototipo
  • único

Patrones estructurales

  • Adaptador
  • Puente
  • Filtrar
  • Compuesto
  • Decorador
  • Fachada
  • Peso mosca
  • Apoderado

Patrones de comportamiento

  • Interprete
  • Método / patrón de plantilla
  • Cadena de responsabilidad
  • Patrón de comando
  • Patrón de iterador
  • Patrón de estrategia
  • Patrón de visitante

Patrones J2EE

  • Patrón MVC
  • Patrón de objeto de acceso a datos
  • Patrón de controlador frontal
  • Patrón de filtro de interceptación
  • Patrón de objeto de transferencia

2) ¿Explica las ventajas del patrón de diseño de Java?

  • Los patrones de diseño se pueden reutilizar en varios proyectos.
  • Los patrones de diseño proporcionan una solución que ayuda a definir la arquitectura del sistema.
  • Los patrones de diseño capturan experiencias de ingeniería de software.
  • Los patrones de diseño brindan transparencia al diseño de una aplicación.
  • Están documentados y bien probados, ya que se han basado en el conocimiento y la experiencia de desarrolladores de software expertos.

3) ¿Qué es Gang of Four (GOF)?

En 1994, cuatro autores Erich Gamma, Ralph Johnson, Richard Hel y John Vlissides publicaron un libro titulado Elementos de patrones de diseño de software orientado a objetos reutilizable. Este libro introdujo el concepto de patrón de diseño en el desarrollo de software.

Estos cuatro autores se conocen como Gang of Four GOF.


4) ¿Cuáles son los patrones creacionales?

Los patrones de diseño creacional están relacionados con la forma de crear objetos. Los patrones de diseño de creación se utilizan cuando se toma una decisión en el momento de la instanciación de una clase.

Dado que la nueva palabra clave se usa para crear un objeto en Java, aquí estamos creando la instancia usando la nueva palabra clave. En algunos casos, la naturaleza del objeto debe cambiarse de acuerdo con la naturaleza del programa. En tales casos, deberíamos utilizar los patrones de diseño de creación para proporcionar un enfoque más general y flexible.


5) ¿Qué es el patrón de fábrica?

  • Es el patrón de diseño más utilizado en Java.
  • Estos patrones de diseño pertenecen al 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, no exponemos la lógica de creación al cliente y referimos el objeto creado usando una interfaz estándar.
  • Factory Pattern permite a las subclases elegir el tipo de objetos a crear.
  • El patrón de fábrica también se conoce como Constructor virtual.

6) ¿Qué es el patrón abstracto de fábrica?

Abstract Factory Pattern establece que definen una clase o interfaz abstracta para crear familias de objetos relacionados pero sin especificar sus subclases concretas. Eso significa que Abstract Factory permitió que una clase devolviera una fábrica de clases. Es por eso que el patrón de fábrica abstracto es un nivel más alto que el patrón de fábrica.

  • Los patrones de Abstract Factory funcionan alrededor de superclases, lo que crea otras clases.
  • El patrón de fábrica abstracta 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 identificar explícitamente sus clases.
  • Cada fábrica generada puede dar los objetos de acuerdo con el patrón de fábrica.

7) ¿Explica los patrones estructurales en Java?

Los patrones estructurales se utilizan para proporcionar soluciones y estándares eficientes con respecto a la composición de clases y estructuras de objetos. Dependen del concepto de herencia e interfaces para permitir que múltiples objetos o clases trabajen juntos y formen un solo todo funcional.

Los patrones de diseño estructural son responsables de cómo se pueden componer las clases y los objetos para formar estructuras más grandes.


8) ¿Explica el patrón Singleton?

El patrón singleton en Java es un patrón que permite una sola instancia dentro de una aplicación. Un buen ejemplo del patrón singleton es java.lang.Runtime.

Singleton Pattern establece que definen una clase que tiene solo una instancia y proporciona un punto global de acceso a ella.

En otras palabras, es responsabilidad de la clase que se cree solo una instancia y que todas las demás clases puedan usar un solo objeto.


9) Describe de cuántas formas puedes crear un patrón singleton.

Hay dos formas de crear un patrón Singleton.

1. Instanciación temprana

Es responsable de la creación de la instancia en el momento de la carga.

2. Instanciación perezosa

Es responsable de la creación de la instancia cuando sea necesario.


10) ¿Qué son los patrones de Adaptador?

El patrón de adaptador convierte la interfaz de una clase en otra interfaz según el requisito.

En otras palabras, le permite convertir la interfaz de acuerdo con los requisitos mientras usa el servicio de clase con una interfaz diferente.

También se conoce como Wrapper.


11) ¿Ilustra los usos de los patrones adaptadores?

Se utiliza en los siguientes casos:

  • Cuando un objeto requiere utilizar una clase existente con una interfaz incompatible.
  • En caso de que queramos crear una clase reutilizable que colabore con clases que no tienen interfaces compatibles.

12) ¿Discute la estrategia para describir un patrón de diseño?

Los siguientes puntos deben tenerse en cuenta para describir el patrón de diseño.

  • El nombre y la clasificación del patrón.
  • El problema y la solución.
  • Consecuencias: También deben abordarse las variaciones y las alternativas que dependen del idioma.
  • Usos: Identificar los usos en los sistemas reales y su eficiencia.

13) ¿Cuál es el patrón de decorador en Java, explícalo con un ejemplo?

El patrón de decorador es uno de los patrones de diseño populares de Java. Es común debido a su uso intensivo en java.io (paquete). Decorator Pattern utiliza la composición en lugar de la herencia para ampliar la funcionalidad de un objeto en tiempo de ejecución.

BufferedReader y Escritor en búfer son algunos ejemplos excelentes de patrones decoradores en Java.


14) ¿Diferencia entre el patrón de diseño de estrategia y estado en Java?

Esta pregunta es una pregunta de entrevista de patrón de diseño de Java que se hace comúnmente, ya que tanto el patrón de estrategia como el de estado tienen la misma estructura. El diagrama de clases UML de ambos patrones se ve exactamente igual, pero su intención es diferente.

El patrón de diseño de estado se usa para administrar y definir el estado de un objeto, mientras que el patrón de estrategia se usa para describir un conjunto de algoritmos intercambiables.


15) ¿Cuáles son las ventajas del patrón de diseño compuesto en Java?

El patrón de diseño compuesto permite a los clientes operar colectivamente sobre objetos que pueden o no representar una jerarquía de objetos.

La ventaja de los patrones de diseño compuestos es la siguiente.

  • Describe la jerarquía de clases que contiene objetos primitivos y complejos.
  • Facilita la adición de nuevos tipos de componentes.
  • Facilita la flexibilidad de estructura con una clase o interfaz manejable.

16) ¿Puede describir los usos del patrón compuesto?

Se utiliza en los siguientes casos:

  • Cuando queremos representar una jerarquía total o parcial de objetos.
  • En caso de que necesitemos agregar las responsabilidades de forma dinámica al objeto individual sin afectar a otros objetos.

17) ¿Cuáles son algunos patrones de diseño que se utilizan en la biblioteca JDK?

Algunos de los patrones de diseño que se utilizan en la biblioteca JDK son los siguientes.

  • El patrón de decorador lo utilizan las clases Wrapper.
  • El patrón Singleton es utilizado por las clases Calendar (Runtime).
  • Las clases Wrapper usan un patrón de fábrica como Integer.valueOf.
  • Los marcos de gestión de eventos utilizan un patrón de observador como swing, awt.

18) ¿Menciona la ventaja del patrón de diseño Builder en Java?

Las ventajas de los patrones de diseño del constructor son las siguientes.

  • Facilita con una clara separación entre la construcción y la representación de un objeto.
  • Proporciona un mejor control sobre el proceso de construcción.
  • El parámetro del constructor se reduce y se proporciona en llamadas a métodos altamente legibles.
  • En el patrón de diseño, el objeto siempre se instancia en un estado completo.
  • En el patrón de diseño Builder, los objetos inmutables se pueden construir rápidamente en el proceso de construcción de objetos.

19) ¿Puedes escribir Singleton seguro para subprocesos en Java?

Hay muchas formas de escribir un singleton seguro para subprocesos en Java.

  • Singleton seguro para subprocesos se puede escribir escribiendo singleton utilizando bloqueo de doble verificación.
  • Otra forma es mediante el uso de una instancia estática de Singleton inicializada durante la carga de la clase.
  • Usando Java enumeración para crear un singleton seguro para subprocesos, esta es la forma más sencilla.

20) ¿Es posible crear un clon de un objeto singleton?

Sí, es posible crear un clon de un objeto singleton.


21) ¿Qué es el patrón de proxy y qué hace?

El término Proxy significa un objeto que representa a otro objeto. El patrón de proxy proporciona un sustituto o marcador de posición para otro propósito para controlar el acceso a él.

Según Pandillas de cuatro, un patrón de proxy «proporciona control para acceder al objeto original».

Podemos realizar muchas operaciones de seguridad como ocultar la información del objeto original, carga bajo demanda, etc.

También se le llama como marcador de posición o sustituto.


22) ¿Explica algunos tipos diferentes de poderes?

Hay muchos casos en los que el patrón de proxy es beneficioso. Echemos un vistazo a algunos proxies diferentes.

Proxy de protección

Controla el acceso al sujeto real en función de alguna condición.

Proxies virtuales

Los proxies virtuales se utilizan para crear instancias del costoso objeto. El proxy gestiona la vida útil del sujeto real en la implementación.

Decide la necesidad de la creación de la instancia y cuándo reutilizarla. Los proxies virtuales optimizan el rendimiento.

Proxies de caché

Los proxies de almacenamiento en caché se utilizan para almacenar en caché llamadas costosas al sujeto real. Hay muchas estrategias de almacenamiento en caché que puede utilizar el proxy.

Algunos de ellos son de lectura completa, escritura simultánea, caché aparte y basados ​​en el tiempo. Los proxies de almacenamiento en caché se utilizan para mejorar el rendimiento.

Proxies remotos

Los proxies remotos se utilizan en la comunicación de objetos distribuidos. El proxy remoto provoca la ejecución en el objeto remoto invocando un método de objeto local.

Proxies inteligentes

Los proxies inteligentes se utilizan para implementar llamadas de registro y contar referencias al objeto.


23) ¿Explica el patrón de la cadena de responsabilidad?

En el patrón de cadena de responsabilidad, el remitente envía una solicitud a una cadena de objetos y cualquier objeto de la cadena puede manejar la solicitud.

Un patrón de cadena de responsabilidad evita vincular el remitente de una solicitud a su receptor. Por ejemplo, un servicio de cajero automático utiliza el patrón de diseño de Cadena de responsabilidad en transacciones monetarias.

Además, podemos explicar que habitualmente, cada receptor contiene la referencia de otro receptor. Si un objeto no puede manejar la solicitud, envía lo mismo al siguiente receptor y así sucesivamente.


24) Explique las ventajas del patrón de cadena de responsabilidades y cuándo se utiliza.

  • Minimiza el acoplamiento.
  • Proporciona flexibilidad al asignar responsabilidades a los objetos.
  • Permite que un conjunto de clases actúen como una sola. Los eventos producidos en una clase se pueden enviar a otras clases de controladores con la ayuda de la composición.

Uso del patrón de cadena de responsabilidad

Se utiliza en los siguientes casos:

  • Cuando más de un objeto está listo para manejar una solicitud y se desconoce el controlador.
  • En caso de que la colección o un grupo de objetos que puedan manejar la solicitud deba especificarse dinámicamente.

25) ¿En qué se diferencia el patrón Bridge de …

close