English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
نموذج المصنع هو نموذج تصميم (نموذج خلق)، يستخدم لإنشاء عدة كائنات بناءً على البيانات التي نقدمها. فيه، نخلق كائنًا لعملية إنشاء مبدئية.
إليك مثال على تنفيذ نموذج المصنع. هنا، لدينا واجهة Employee و3 فئات:Student، المدرسين،NonTeachingStaff، وقد قمنا بتحقيقها. نحن نستخدم كائنًا يُدعى بـ Factory Class (EmployeeFactory)getEmployee()
هذه الطريقة تأخذ قيمة String وتعيد أحد كائنات الفئات بناءً على القيمة المقدمة
import java.util.Scanner; interface Person{ void dsplay(); } class Student implements Person{ public void dsplay() { System.out.println("هذا هو طريقة عرض فئة Student"); } } class Lecturer implements Person{ public void dsplay() { System.out.println("هذا هو طريقة عرض فئة Lecturer"); } } class NonTeachingStaff implements Person{ public void dsplay() { System.out.println("هذا هو طريقة عرض فئة NonTeachingStaff"); } } class PersonFactory{ public Person getPerson(String empType) { إذا (empType == null){ return null; } إذا (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("أدخل نوع الكائن الذي تريد: (student, lecturer, non teaching staff)"); String type = sc.next(); PersonFactory obj = new PersonFactory(); Person emp = obj.getPerson(type); emp.dsplay(); } }
نتيجة الإخراج
أدخل نوع الكائن الذي تريد: (student, lecturer, non teaching staff) lecturer هذا هو طريقة عرض الكائن من فئة Lecturer
على الرغم من أن هناك خمس طرق يمكن استخدامها لإنشاء عنصر في Java-
استخدام مفتاح new.
استخدام طريقة مصنع.
استخدام النسخ.
استخدام Class.forName().
استخدام تفاعل العنصر.
الطريقة الوحيدة لإنشاء عنصر باستخدام Java هي باستخدام مفتاح new، وكل الطرق الأخرى هي抽象 لهذا العنصر. يتم استخدام مفتاح new بشكل كامل في جميع هذه الطرق.
import java.util.Scanner; interface Employee{ void dsplay(); } class Student implements Employee{ public void dsplay() { System.out.println("هذا هو طريقة عرض فئة Student"); } } class Lecturer implements Employee{ public void dsplay() { System.out.println("هذا هو طريقة عرض فئة Lecturer"); } } class NonTeachingStaff implements Employee{ public void dsplay() { System.out.println("هذا هو طريقة عرض فئة NonTeachingStaff"); } } class EmployeeFactory{ public static Employee getEmployee(String empType) { إذا (empType == null){ return null; } إذا (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("أدخل نوع الكائن الذي تريد: (student, lecturer, non teaching staff)"); String type = sc.next(); EmployeeFactory obj = new EmployeeFactory(); Employee emp = EmployeeFactory.getEmployee(type); emp.dsplay(); } }
نتيجة الإخراج
أدخل نوع الكائن الذي تريد: (student, lecturer, non teaching staff) lecturer هذا هو طريقة عرض الكائن من فئة Lecturer