รูปแบบการออกแบบ - ภาพรวม
รูปแบบการออกแบบแสดงถึงแนวทางปฏิบัติที่ดีที่สุดที่ใช้โดยนักพัฒนาซอฟต์แวร์เชิงวัตถุที่มีประสบการณ์ รูปแบบการออกแบบเป็นวิธีแก้ปัญหาทั่วไปที่นักพัฒนาซอฟต์แวร์ต้องเผชิญในระหว่างการพัฒนาซอฟต์แวร์ โซลูชันเหล่านี้ได้มาจากการลองผิดลองถูกโดยนักพัฒนาซอฟต์แวร์จำนวนมากในช่วงระยะเวลาหนึ่ง
Gang of Four (GOF) คืออะไร?
ในปี 1994 ผู้เขียนสี่คน Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides ได้ตีพิมพ์หนังสือชื่อ Design Patterns - Elements of Reusable Object-Oriented Software ซึ่งริเริ่มแนวคิด Design Pattern ในการพัฒนาซอฟต์แวร์
ผู้เขียนเหล่านี้เรียกรวมกันว่า Gang of Four (GOF). ตามรูปแบบการออกแบบของผู้เขียนเหล่านี้มีพื้นฐานมาจากหลักการต่อไปนี้ของการออกแบบเชิงวัตถุ
โปรแกรมไปยังอินเทอร์เฟซไม่ใช่การใช้งาน
ชอบองค์ประกอบของวัตถุมากกว่าการสืบทอด
การใช้รูปแบบการออกแบบ
รูปแบบการออกแบบมีสองลักษณะหลักในการพัฒนาซอฟต์แวร์
แพลตฟอร์มทั่วไปสำหรับนักพัฒนา
รูปแบบการออกแบบเป็นคำศัพท์มาตรฐานและเฉพาะเจาะจงสำหรับสถานการณ์เฉพาะ ตัวอย่างเช่นรูปแบบการออกแบบซิงเกิลตันหมายถึงการใช้อ็อบเจ็กต์เดียวดังนั้นนักพัฒนาทุกคนที่คุ้นเคยกับรูปแบบการออกแบบเดียวจะใช้ประโยชน์จากอ็อบเจ็กต์เดียวและพวกเขาสามารถบอกกันและกันได้ว่าโปรแกรมกำลังทำตามรูปแบบซิงเกิลตัน
ปฏิบัติที่ดีที่สุด
รูปแบบการออกแบบได้รับการพัฒนามาเป็นระยะเวลานานและเป็นวิธีแก้ปัญหาที่ดีที่สุดสำหรับปัญหาบางอย่างที่ต้องเผชิญในระหว่างการพัฒนาซอฟต์แวร์ การเรียนรู้รูปแบบเหล่านี้ช่วยให้นักพัฒนาที่ไม่มีประสบการณ์สามารถเรียนรู้การออกแบบซอฟต์แวร์ได้ง่ายและเร็วขึ้น
ประเภทของรูปแบบการออกแบบ
ตามหนังสืออ้างอิงรูปแบบการออกแบบ Design Patterns - Elements of Reusable Object-Oriented Softwareมีรูปแบบการออกแบบ 23 รูปแบบซึ่งสามารถแบ่งออกเป็น 3 ประเภท ได้แก่ รูปแบบการสร้างสรรค์โครงสร้างและพฤติกรรม นอกจากนี้เราจะพูดถึงรูปแบบการออกแบบประเภทอื่น: รูปแบบการออกแบบ J2EE
SN | รูปแบบและคำอธิบาย |
---|---|
1 | Creational Patterns รูปแบบการออกแบบเหล่านี้เป็นวิธีการสร้างวัตถุในขณะที่ซ่อนตรรกะการสร้างแทนที่จะสร้างอินสแตนซ์วัตถุโดยตรงโดยใช้ตัวดำเนินการใหม่ สิ่งนี้ช่วยให้โปรแกรมมีความยืดหยุ่นมากขึ้นในการตัดสินใจว่าจะต้องสร้างวัตถุใดสำหรับกรณีการใช้งานที่กำหนด |
2 | Structural Patterns รูปแบบการออกแบบเหล่านี้เกี่ยวข้องกับคลาสและองค์ประกอบของวัตถุ แนวคิดของการถ่ายทอดทางพันธุกรรมใช้ในการสร้างอินเทอร์เฟซและกำหนดวิธีการเขียนวัตถุเพื่อให้ได้ฟังก์ชันใหม่ |
3 | Behavioral Patterns รูปแบบการออกแบบเหล่านี้เกี่ยวข้องกับการสื่อสารระหว่างวัตถุโดยเฉพาะ |
4 | J2EE Patterns รูปแบบการออกแบบเหล่านี้เกี่ยวข้องกับระดับการนำเสนอโดยเฉพาะ รูปแบบเหล่านี้ระบุโดย Sun Java Center |