English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
工厂模式是一种设计模式(创意模式),用于根据我们提供的数据创建多个对象。在其中,我们创建了一个抽象创建过程的对象。
下面给出了工厂模式的示例实现。在这里,我们有一个名为Employee和3类的接口:Student,讲师,NonTeachingStaff,实现了它。我们使用名为的方法创建了一个工厂类(EmployeeFactory)getEmployee()
。Este método acepta un valor de String y devuelve un objeto de una de las clases según el valor de String dado。
import java.util.Scanner; interface Person { void dsplay(); } class Student implements Person { public void dsplay() { System.out.println("Este es el método de visualización de la clase Student"); } } class Lecturer implements Person { public void dsplay() { System.out.println("Este es el método de visualización de la clase Lecturer"); } } class NonTeachingStaff implements Person { public void dsplay() { System.out.println("Este es el método de visualización de la clase NonTeachingStaff"); } } class PersonFactory { public Person getPerson(String empType) { if(empType == null) { return null; } if(empType.equalsIgnoreCase("student")){ return new Student(); } else if(empType.equalsIgnoreCase("lecturer")){ return new Lecturer(); } else if(empType.equalsIgnoreCase("non teaching staff")){ return new NonTeachingStaff(); } return null; } } public class FactoryPattern { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Ingrese el tipo del objeto que desea: (estudiante, lecturer, personal no docente)"); String type = sc.next(); PersonFactory obj = new PersonFactory(); Person emp = obj.getPerson(type); emp.dsplay(); } }
Resultado de la salida
Ingrese el tipo del objeto que desea: (estudiante, lecturer, personal no docente) lecturer Este es el método de visualización de la clase Lecturer
Aunque se dice que hay cinco métodos para crear objetos en Java-
Usar la palabra clave new.
Usar el método de fábrica.
Usar clonación.
Usar Class.forName().
Usar la deserialización de objetos.
El único método para crear objetos en Java es usar la palabra clave new, todas las otras métodos son abstracciones del objeto. Todos estos métodos utilizan completamente la palabra clave new internamente.
import java.util.Scanner; interface Employee { void dsplay(); } class Student implements Employee { public void dsplay() { System.out.println("Este es el método de visualización de la clase Student"); } } class Lecturer implements Employee { public void dsplay() { System.out.println("Este es el método de visualización de la clase Lecturer"); } } class NonTeachingStaff implements Employee { public void dsplay() { System.out.println("Este es el método de visualización de la clase NonTeachingStaff"); } } class EmployeeFactory { public static Employee getEmployee(String empType) { if(empType == null) { return null; } if(empType.equalsIgnoreCase("student")){ return new Student(); } else if(empType.equalsIgnoreCase("lecturer")){ return new Lecturer(); } else if(empType.equalsIgnoreCase("non teaching staff")){ return new NonTeachingStaff(); } return null; } } public class FactoryPattern { public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Ingrese el tipo del objeto que desea: (estudiante, lecturer, personal no docente)"); String type = sc.next(); EmployeeFactory obj = new EmployeeFactory(); Employee emp = EmployeeFactory.getEmployee(type); emp.dsplay(); } }
Resultado de la salida
Ingrese el tipo del objeto que desea: (estudiante, lecturer, personal no docente) lecturer Este es el método de visualización de la clase Lecturer