แสดงให้เห็น
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 ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน