คำถามยอดนิยม
ไทมไลน์
แชท
มุมมอง

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

จากวิกิพีเดีย สารานุกรมเสรี

Remove ads

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

Remove ads

จุดเริ่มต้น

แบบแผนการออกแบบมีจุดเริ่มต้นจากหนังสือชื่อ 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)

Remove ads

ประโยชน์

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

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

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

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

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

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

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

  • concurrency patterns
  • architectural patterns

ดูเพิ่ม

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads