คำถามยอดนิยม
ไทมไลน์
แชท
มุมมอง
แบบแผนการออกแบบซอฟต์แวร์
จากวิกิพีเดีย สารานุกรมเสรี
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)
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
แบบแผนโครงสร้าง (structural patterns)
แบบแผนพฤติกรรม (behavioral patterns)
- Chain of responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template method
- Visitor
หมวดหมู่แบบแผนการออกแบบซอฟต์แวร์อื่น ๆ
- concurrency patterns
- architectural patterns
ดูเพิ่ม
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads