กลับไปหน้าบทความ

อ่าน 3 นาที

รูปแบบการสร้างสรรค์

รูป แบบการสร้างวัตถุ (Creational pattern ) เป็น รูปแบบการออกแบบซอฟต์แวร์ สำหรับการสร้าง วัตถุ ในลักษณะที่เหมาะสมกับสถานการณ์เฉพาะ เนื่องจากการสร้างวัตถุที่มีอยู่แล้ว (เช่น ผ่าน...

รูปแบบการสร้างสรรค์

รูปแบบการสร้างวัตถุ (Creational pattern ) เป็นรูปแบบการออกแบบซอฟต์แวร์สำหรับการสร้างวัตถุในลักษณะที่เหมาะสมกับสถานการณ์เฉพาะ เนื่องจากการสร้างวัตถุที่มีอยู่แล้ว (เช่น ผ่านภาษาโปรแกรม ) บางครั้งอาจส่งผลให้เกิด ข้อจำกัดใน การออกแบบกลไกการสร้างแบบกำหนดเองจึงสามารถให้การออกแบบที่ดีกว่าได้ รูปแบบการสร้างวัตถุมีเป้าหมายเพื่อแยกระบบออกจากวิธีการสร้าง การประกอบ และการแสดงวัตถุ โดยจะเพิ่มความยืดหยุ่นของระบบในแง่ของสิ่งที่จะสร้าง ใครจะสร้าง อย่างไร และเมื่อใดในการสร้างวัตถุ[ 1 ]

รูปแบบการสร้างประกอบด้วยสองแง่มุมหลัก หนึ่งคือการห่อหุ้มความรู้เกี่ยวกับคลาส ที่เป็นรูปธรรมที่ ระบบใช้ อีกประการหนึ่งคือการซ่อนวิธีการสร้างและรวมอินสแตนซ์ ของคลาสที่เป็นรูปธรรมเหล่านี้ [ 2 ]

รูปแบบการออกแบบเชิงสร้างสรรค์แบ่งออกเป็นรูปแบบการสร้างวัตถุและรูปแบบการสร้างคลาส รูปแบบการสร้างวัตถุจะเลื่อนการสร้างวัตถุบางส่วนไปยังวัตถุอื่น ในขณะที่รูปแบบการสร้างคลาสจะเลื่อนการสร้างวัตถุไปยังคลาสย่อย[ 3 ]

การใช้งาน

เนื่องจากวิศวกรรมซอฟต์แวร์สมัยใหม่พึ่งพาการประกอบวัตถุมากกว่าการสืบทอดคลาส จึงมีการเน้นไปที่การกำหนดพฤติกรรมพื้นฐานจำนวนน้อยลงที่สามารถประกอบกันเป็นพฤติกรรมที่ซับซ้อนมากขึ้นแทนที่จะใช้การเขียนโค้ดแบบตายตัว[ 4 ]พฤติกรรมแบบตายตัวนั้นไม่ยืดหยุ่น เพราะต้องเขียนทับหรือเขียนใหม่ทั้งหมดเพื่อเปลี่ยนแปลงส่วนต่างๆ ของการออกแบบ นอกจากนี้ การเขียนโค้ดแบบตายตัวยังไม่ส่งเสริมการนำกลับมาใช้ใหม่และทำให้ยากต่อการติดตามข้อผิดพลาด ด้วยเหตุผลเหล่านี้ รูปแบบการสร้างจึงมีประโยชน์มากกว่าพฤติกรรมแบบตายตัว รูปแบบการสร้างทำให้การออกแบบมีความยืดหยุ่นมากขึ้น โดยมีวิธีการต่างๆ ในการลบการอ้างอิงที่ชัดเจนในคลาสที่เป็นรูปธรรมออกจากโค้ดที่ต้องการสร้างอินสแตนซ์ของคลาสเหล่านั้น[ 5 ]กล่าวอีกนัยหนึ่งคือ พวกมันสร้างความเป็นอิสระให้กับวัตถุและคลาส

ควรพิจารณาใช้รูปแบบการสร้างสรรค์เมื่อ:

  • ระบบควรเป็นอิสระจากวิธีการสร้างวัตถุและผลิตภัณฑ์ของระบบนั้น ๆ
  • ชุดของวัตถุที่เกี่ยวข้องกันถูกออกแบบมาเพื่อให้ใช้งานร่วมกันได้
  • การซ่อนรายละเอียดการใช้งานของไลบรารีคลาสหรือผลิตภัณฑ์ โดยแสดงเฉพาะส่วนต่อประสาน (interface) เท่านั้น
  • สร้างตัวแทนที่แตกต่างกันของวัตถุที่ซับซ้อนและเป็นอิสระต่อกัน
  • คลาสหนึ่งต้องการให้คลาสย่อยนำเอาสิ่งที่มันสร้างขึ้นมาใช้งาน
  • การสร้างอินสแตนซ์ของคลาสจะถูกกำหนดในระหว่างการทำงานของโปรแกรม
  • จะต้องมีอินสแตนซ์เดียว และไคลเอนต์สามารถเข้าถึงอินสแตนซ์นี้ได้ตลอดเวลา
  • อินสแตนซ์ควรสามารถขยายได้โดยไม่ต้องแก้ไขใดๆ

โครงสร้าง

แผนภาพคลาสของรูปแบบการสร้างสรรค์ (Creational Pattern)

ด้านล่างนี้คือแผนภาพคลาสอย่างง่ายที่รูปแบบการสร้างส่วนใหญ่มีเหมือนกัน โปรดทราบว่ารูปแบบการสร้างที่แตกต่างกันนั้นต้องการคลาสที่เกี่ยวข้องเพิ่มเติมและแตกต่างกันไป

ผู้เข้าร่วม :

  • Creator : ประกาศอินเทอร์เฟซของอ็อบเจ็กต์ ส่งคืนอ็อบเจ็กต์
  • ConcreteCreator : ทำหน้าที่สร้างอินเทอร์เฟซของอ็อบเจ็กต์

ตัวอย่าง

ตัวอย่างของรูปแบบการออกแบบเชิงสร้างสรรค์ ได้แก่:

รูปแบบโรงงานนามธรรม
คลาสจะร้องขอวัตถุที่ต้องการจากวัตถุโรงงานแทนที่จะสร้างวัตถุโดยตรง[ 6 ]
รูปแบบวิธีการผลิต
รวมศูนย์การสร้างวัตถุประเภทเฉพาะโดยเลือกการใช้งานหนึ่งในหลายๆ แบบ[ 7 ]
รูปแบบผู้สร้าง
แยกกระบวนการสร้างวัตถุที่ซับซ้อนออกจากวิธีการแสดงผล เพื่อให้กระบวนการสร้างเดียวกันสามารถสร้างการแสดงผลที่แตกต่างกันได้
รูปแบบการฉีดการพึ่งพา (Dependency injection pattern)
คลาสจะรับอ็อบเจ็กต์ที่ต้องการจากตัวฉีดแทนที่จะสร้างอ็อบเจ็กต์โดยตรง
รูปแบบการเริ่มต้นแบบขี้เกียจ
กลยุทธ์ในการชะลอการสร้างวัตถุ การคำนวณค่า หรือกระบวนการที่มีค่าใช้จ่ายสูงอื่นๆ จนกว่าจะถึงเวลาที่จำเป็นต้องใช้ครั้งแรก
รูปแบบพูลวัตถุ
หลีกเลี่ยงการจัดซื้อและปล่อยทรัพยากรที่มีราคาแพง ด้วยการรีไซเคิลสิ่งของที่ไม่ได้ใช้งานแล้ว
รูปแบบต้นแบบ
ใช้เมื่อประเภทของวัตถุที่จะสร้างถูกกำหนดโดยอินสแตนซ์ต้นแบบ ซึ่งจะถูกคัดลอกเพื่อสร้างวัตถุใหม่
รูปแบบซิงเกิลตัน
จำกัดการสร้างอินสแตนซ์ของคลาสให้มีเพียงวัตถุเดียว[ 8 ]

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Creational_pattern&oldid=1327663100 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ รูปแบบการสร้างสรรค์

รูป แบบการสร้างวัตถุ (Creational pattern ) เป็น รูปแบบการออกแบบซอฟต์แวร์ สำหรับการสร้าง วัตถุ ในลักษณะที่เหมาะสมกับสถานการณ์เฉพาะ เนื่องจากการสร้างวัตถุที่มีอยู่แล้ว (เช่น ผ่าน...

การใช้งาน

เนื่องจากวิศวกรรมซอฟต์แวร์สมัยใหม่พึ่งพา การประกอบวัตถุ มากกว่าการสืบทอดคลาส จึงมีการเน้นไปที่การกำหนดพฤติกรรมพื้นฐานจำนวนน้อยลงที่สามารถประกอบกันเป็นพฤติกรรมที่ซับซ้อนมากขึ้นแทนที่จะใช้การเขียนโค้ดแบบตายตัว [ 4 ] พฤติกรรมแบบตายตัวนั้นไม่ยืดหยุ่น...

โครงสร้าง

ด้านล่างนี้คือแผนภาพคลาสอย่างง่ายที่รูปแบบการสร้างส่วนใหญ่มีเหมือนกัน โปรดทราบว่ารูปแบบการสร้างที่แตกต่างกันนั้นต้องการคลาสที่เกี่ยวข้องเพิ่มเติมและแตกต่างกันไป

ตัวอย่าง

ตัวอย่างของรูปแบบการออกแบบเชิงสร้างสรรค์ ได้แก่: