Requisito previo: patrón de fábrica frente a inyección de dependencia
El patrón de diseño de fábrica y el diseño de inyección de dependencia se utilizan para definir los programas controlados por interfaz para crear objetos. La inyección de dependencia se utiliza para obtener un diseño débilmente acoplado , mientras que Factory Pattern agrega acoplamiento entre objetos, fábricas y dependencias. En este artículo, discutiremos cuándo usar Factory Pattern en lugar de Inyección de dependencia.
En Inyección de dependencia, se usa para componentes de software acoplados libremente. No tiene conocimiento de ningún contenedor o fábrica para la creación de bean y solo tiene conocimiento de la dependencia, lo que hace que la clase sea más fácil de probar. El contenedor (IOC contiene en caso de primavera) administra la creación de objetos y su vida útil y también inyecta dependencias a la clase.
Ejemplo :
Java
public class FactoryProduct{ // Instance of OperatingSystem private OperatingSystem OS; public void setAddress(Address address){ this.address=address; } }
En Factory Design, crea varias instancias de una clase sin saber necesariamente qué tipo de objeto crea o cómo crearlo. El cliente es responsable de administrar la clase de fábrica y de llamar al método getInstance() para crear una instancia de la clase. Esto también dificulta la prueba unitaria, ya que necesitaría un objeto de fábrica para realizar la prueba unitaria.
Ejemplo:
Java
// Dependent class public class FactoryProduct{ public static void Main(String[] str){ // Instance of OperatingSystemFactory class OperatingSystemFactory osfactory = new OperatingSystemFactory(); // Getting the instance OperatingSystem obj = osfactory.getInstance("windows"); obj.cpu(); } }
Cuándo usar Factory Design
El diseño de patrón de fábrica se utiliza principalmente en las siguientes situaciones:
- Una clase no conoce el tipo de objeto antes de su creación.
- Una clase requiere que sus subclases especifiquen los objetos que crea.
- Desea localizar la lógica de su programa para instanciar una instancia de la clase.
- Es útil cuando necesita abstraer la creación de un objeto de su implementación real.
Publicación traducida automáticamente
Artículo escrito por ashutosh44 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA