รูปแบบการออกแบบ - ภาพรวม

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

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