
แสดงให้เห็น
1. รูปแบบโรงงานแก้ปัญหาวิธีสร้างออบเจ็กต์อินสแตนซ์โดยไม่ต้องใช้สิ่งใหม่
2. มีบางวิธีในการสร้างเป้าหมายนอกเหนือจากใหม่
หากคุณต้องการเปลี่ยนประเภทของออบเจ็กต์ที่สร้างขึ้น คุณเพียงแค่ต้องเปลี่ยนโรงงาน และรหัสทั้งหมดที่ใช้โรงงานนี้จะเปลี่ยนโดยอัตโนมัติ
3. โดยปกติจะใช้กับอินเทอร์เฟซ แอปพลิเคชันไม่จำเป็นต้องทราบรายละเอียดเฉพาะของคลาสที่สร้างอินสแตนซ์เหล่านี้
ใช้งานง่ายตราบใดที่คุณรู้ว่าโรงงานส่งคืนคลาสที่รองรับหมวดหมู่อินเทอร์เฟซบางประเภท
ตัวอย่าง
-
* บทคัดย่ออินเทอร์เฟซของบุคคล * อินเทอร์เฟซบุคคล
-
อินเทอร์เฟซบุคคล
-
ฟังก์ชั่นสาธารณะ showInfo();
-
-
* ชั้นเรียนของนักเรียนที่สืบทอดมาจากอินเทอร์เฟซของมนุษย์ที่เป็นนามธรรม * Class Student
-
ชั้นเรียน นักเรียนดำเนินการ บุคคล
-
ฟังก์ชั่นสาธารณะ showInfo()
-
echo "นี่คือนักเรียนn";
-
-
-
* ชั้นเรียนครูที่สืบทอดมาจากอินเทอร์เฟซของมนุษย์ที่เป็นนามธรรม * ครูประจำชั้น
-
ครูประจำชั้นดำเนินการบุคคล
-
ฟังก์ชั่นสาธารณะ showInfo()
-
echo "นี่คือครูn";
-
-
-
* โรงงานมนุษย์ * Class PersonFactory
-
คลาส PersonFactory
-
โรงงานฟังก์ชั่นคงที่สาธารณะ ($person_type)
-
// เปลี่ยนตัวอักษรตัวแรกของประเภทที่ส่งผ่านใน $class_name = ucfirst($person_type);
ถ้า(class_exists($class_name)){
ส่งคืน $class_name ใหม่;
}อื่น{
โยนข้อยกเว้นใหม่ ("คลาส: $class_name ไม่มีอยู่",1);
-
-
-
// ต้องการนักเรียน $student = PersonFactory::factory('student');
เสียงสะท้อน $student->showInfo();
// เมื่อคุณต้องการครู $teacher = PersonFactory::factory('teacher');
เสียงสะท้อน $ครู->showInfo();ข้างต้นนี้เป็นการแนะนำโหมดโรงงาน PHP ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน