รูปแบบการออกแบบแสดงถึงแนวทางปฏิบัติที่ดีที่สุดที่ใช้โดยนักพัฒนาซอฟต์แวร์เชิงวัตถุที่มีประสบการณ์ รูปแบบการออกแบบเป็นวิธีแก้ไขปัญหาทั่วไปที่นักพัฒนาซอฟต์แวร์ต้องเผชิญในระหว่างการพัฒนาซอฟต์แวร์ โซลูชันเหล่านี้ได้มาจากการลองผิดลองถูกโดยนักพัฒนาซอฟต์แวร์จำนวนมากในช่วงระยะเวลาหนึ่ง
รูปแบบการออกแบบเป็นภาษาที่ไม่เชื่อเรื่องพระเจ้า รูปแบบการออกแบบสามารถจำแนกได้เป็น 3 ประเภท ได้แก่ รูปแบบการสร้างสรรค์ โครงสร้าง และพฤติกรรม
รูปแบบการสร้างสรรค์ - รูปแบบการออกแบบเหล่านี้ให้วิธีการสร้างวัตถุในขณะที่ซ่อนตรรกะการสร้าง แทนที่จะสร้างอินสแตนซ์ของวัตถุโดยตรงโดยใช้ตัวดำเนินการใหม่ สิ่งนี้ทำให้โปรแกรมมีความยืดหยุ่นมากขึ้นในการตัดสินใจว่าจะต้องสร้างวัตถุใดสำหรับกรณีการใช้งานที่กำหนด ตัวอย่างรูปแบบ:Factory, Builder, Singleton ฯลฯ
รูปแบบโครงสร้าง - รูปแบบการออกแบบเหล่านี้เกี่ยวข้องกับคลาสและองค์ประกอบของวัตถุ แนวคิดของการสืบทอดถูกใช้เพื่อเขียนอินเทอร์เฟซและกำหนดวิธีการเขียนออบเจกต์เพื่อรับฟังก์ชันใหม่ ตัวอย่างรูปแบบ:อะแดปเตอร์ มัณฑนากร ซุ้ม ฯลฯ
รูปแบบพฤติกรรม - รูปแบบการออกแบบเหล่านี้เกี่ยวข้องโดยเฉพาะกับการสื่อสารระหว่างวัตถุ ตัวอย่างรูปแบบ:Observer, Iterator, Strategy เป็นต้น