English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Erstellen statische Fabrikmethoden in Java Objekte mit dem Schlüsselwort new intern?

工厂模式是一种设计模式(创意模式),用于根据我们提供的数据创建多个对象。在其中,我们创建了一个抽象创建过程的对象。

Beispiel

下面给出了工厂模式的示例实现。在这里,我们有一个名为Employee和3类的接口:Student,讲师,NonTeachingStaff,实现了它。我们使用名为的方法创建了一个工厂类(EmployeeFactory)getEmployee()。此方法接受String值,并根据给定的String值返回其中一个类的对象。

import java.util.Scanner;
interface Person {
   void display();
}
class Student implements Person {
   public void display() {
      System.out.println("Dies ist die Anzeigemethode der Klasse Student");
   }
}
class Lecturer implements Person {
   public void display() {
      System.out.println("Dies ist die Anzeigemethode der Klasse Lecturer");
   }
}
class NonTeachingStaff implements Person {
   public void display() {
      System.out.println("Dies ist die Anzeigemethode der Klasse 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("Geben Sie den Typ des Objekts ein, das Sie möchten: (student, lecturer, non teaching staff)");
      String type = sc.next();
      PersonFactory obj = new PersonFactory();
      Person emp = obj.getPerson(type);
      emp.dsplay();
   }
}

Ausgaberesultat

Geben Sie den Typ des Objekts ein, das Sie möchten: (student, lecturer, non teaching staff)
lecturer
Dies ist die Anzeigemethode der Klasse Lecturer

Statische Fabrikmethode

Obwohl gesagt wird, dass es fünf Methoden gibt, um Objekte in Java zu erstellen-

  • Verwenden Sie das Schlüsselwort new.

  • Verwenden Sie das Fabrikmethoden.

  • Verwenden Sie das Klonen.

  • Verwenden Sie Class.forName().

  • Verwenden Sie die Deserialisierung des Objekts.

Das einzige Möglichkeit, ein Objekt in Java zu erstellen, ist die Verwendung des Schlüsselworts new, alle anderen Methoden sind Abstraktionen dieses Objekts. Alle diese Methoden verwenden intern das Schlüsselwort new vollständig.

Beispiel

import java.util.Scanner;
interface Employee {
   void display();
}
class Student implements Employee {
   public void display() {
      System.out.println("Dies ist die Anzeigemethode der Klasse Student");
   }
}
class Lecturer implements Employee {
   public void display() {
      System.out.println("Dies ist die Anzeigemethode der Klasse Lecturer");
   }
}
class NonTeachingStaff implements Employee {
   public void display() {
      System.out.println("Dies ist die Anzeigemethode der Klasse 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("Geben Sie den Typ des Objekts ein, das Sie möchten: (student, lecturer, non teaching staff)");
      String type = sc.next();
      EmployeeFactory obj = new EmployeeFactory();
      Employee emp = EmployeeFactory.getEmployee(type);
      emp.dsplay();
   }
}

Ausgaberesultat

Geben Sie den Typ des Objekts ein, das Sie möchten: (student, lecturer, non teaching staff)
lecturer
Dies ist die Anzeigemethode der Klasse Lecturer
Elasticsearch-Tutorial