แบบแผนการออกแบบซอฟต์แวร์

(เปลี่ยนทางจาก ดีไซน์แพตเทิร์น)

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

จุดเริ่มต้น แก้

แบบแผนการออกแบบมีจุดเริ่มต้นจากหนังสือชื่อ A Pattern Language: Towns, Buildings, Construction แต่งโดยสถาปนิกชื่อ Christopher Alexander เมื่อปี ค.ศ. 1977 จากนั้น Kent Beck และ Ward Cunningham ริเริ่มนำเอาแนวคิดนี้มาทดลองใช้กับการเขียนโปรแกรมในปี ค.ศ. 1987 และได้นำเสนอผลงานในงานประชุม OOPSLA ในปีเดียวกันนั้น

แบบแผนการออกแบบเริ่มเป็นที่นิยมในวงการวิทยาการคอมพิวเตอร์ในปี ค.ศ. 1994 หลังจากมีหนังสือที่แต่งโดย Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides (Gang of four: GoF) ชื่อ Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2)

ประโยชน์ แก้

แบบแผนการออกแบบช่วยทำให้กระบวนการพัฒนาโปรแกรมรวดเร็วขึ้นเพราะเป็นตัวอย่างที่ผ่านการพิสูจน์ทดสอบมาแล้ว การออกแบบซอฟต์แวร์ที่ดีต้องเตรียมการสำหรับปัญหาที่อาจจะไม่พบจนกว่าจะเริ่มนำไปใช้งาน การใช้แบบแผนการออกแบบซอฟต์แวร์ช่วยป้องกันปัญหาเล็กน้อยที่อาจจะลุกลามใหญ่โต ทั้งยังทำให้การทำความเข้าใจโค้ดง่ายขึ้นในหมู่ผู้ร่วมงานในทีมที่คุ้นเคยกับแบบแผนการออกแบบ

การจัดหมวดหมู่และแบบแผนในหนังสือ Design Patterns แก้

การจัดหมวดหมู่แบบแผนการออกแบบซอฟต์แวร์ตามหนังสือ Design Patterns แบ่งตามวัตถุประสงค์การใช้งาน ดังนี้

แบบแผนการสร้างอ็อบเจกต์ (creational patterns) แก้

แบบแผนโครงสร้าง (structural patterns) แก้

แบบแผนพฤติกรรม (behavioral patterns) แก้

หมวดหมู่แบบแผนการออกแบบซอฟต์แวร์อื่นๆ แก้

  • concurrency patterns
  • architectural patterns

ดูเพิ่ม แก้