กลับไปหน้าบทความ

อ่าน 2 นาที

แข็ง

ในการเขียนโปรแกรมเชิงวัตถุและการเขียนโปรแกรมเชิงฟังก์ชันSOLIDเป็นตัวย่อที่ช่วยในการจำ สำหรับหลักการห้าประการที่มุ่งทำให้ซอร์สโค้ดเข้าใจง่าย ยืดหยุ่น และบำรุงรักษาได้ง่าย ขึ้น...

แข็ง

ในการเขียนโปรแกรมเชิงวัตถุและการเขียนโปรแกรมเชิงฟังก์ชันSOLIDเป็นตัวย่อที่ช่วยในการจำ สำหรับหลักการห้าประการที่มุ่งทำให้ซอร์สโค้ดเข้าใจง่าย ยืดหยุ่น และบำรุงรักษาได้ง่าย ขึ้น แม้ว่าหลักการเหล่า นี้จะใช้กับการเขียนโปรแกรมเชิงวัตถุ แต่ก็ยังเป็นปรัชญาหลักสำหรับวิธีการต่างๆ เช่นการพัฒนาซอฟต์แวร์แบบ Agileและการพัฒนาซอฟต์แวร์แบบปรับตัวได้ [ 1 ]

วิศวกรซอฟต์แวร์และผู้สอนRobert C. Martin [ 2 ] [ 3 ] [ 1 ]ได้แนะนำหลักการพื้นฐานของการออกแบบ SOLID ในบทความDesign Principles and Design Patternsเกี่ยวกับซอฟต์แวร์ที่เสื่อมสภาพใน ปี 2000 [ 3 ] [ 4 ] : 2–3 คำ ย่อ SOLIDถูกคิดค้นขึ้นประมาณปี 2004 โดย Michael Feathers [ 5 ]

หลักการ

หลักการความรับผิดชอบเดียว

หลักการความรับผิดชอบเดียว (SRP) ระบุว่าไม่ควรมีเหตุผลมากกว่าหนึ่งข้อสำหรับการเปลี่ยนแปลงคลาส[ 6 ]กล่าวอีกนัยหนึ่งคือ ทุกคลาสควรมีความรับผิดชอบเพียงอย่างเดียว[ 7 ]

ความสำคัญ:

  • ความสามารถในการบำรุงรักษา: เมื่อคลาสมีหน้าที่รับผิดชอบเพียงอย่างเดียวและชัดเจน จะทำให้เข้าใจและแก้ไขได้ง่ายขึ้น
  • ความสามารถในการทดสอบ: การเขียน unit test สำหรับคลาสที่มีจุดโฟกัสเดียวจะง่ายกว่า
  • ความยืดหยุ่น: การเปลี่ยนแปลงความรับผิดชอบหนึ่งจะไม่ส่งผลกระทบต่อส่วนอื่น ๆ ของระบบ[ 7 ]

หลักการเปิด-ปิด

หลักการเปิด-ปิด (OCP) ระบุว่าเอนทิตีซอฟต์แวร์ควรเปิดให้มีการขยาย แต่ปิดไม่ให้มีการแก้ไข[ 8 ]

ความสำคัญ:

  • ความสามารถในการขยาย: สามารถเพิ่มฟังก์ชันใหม่ได้โดยไม่ต้องแก้ไขโค้ดที่มีอยู่เดิม
  • ความเสถียร: ช่วยลดความเสี่ยงในการเกิดข้อผิดพลาดเมื่อทำการเปลี่ยนแปลง
  • ความยืดหยุ่น: ปรับตัวให้เข้ากับความต้องการที่เปลี่ยนแปลงได้ง่ายขึ้น

หลักการทดแทนของลิสคอฟ

หลักการแทนที่ของ Liskov (LSP) ระบุว่าฟังก์ชันที่ใช้พอยเตอร์หรือการอ้างอิงไปยังคลาสพื้นฐานจะต้องสามารถใช้พอยเตอร์หรือการอ้างอิงของคลาสที่สืบทอดมาได้โดยไม่ต้องรู้[ 9 ]

ความสำคัญ:

  • โพลีมอร์ฟิซึม : ช่วยให้สามารถใช้พฤติกรรมแบบโพลีมอร์ฟิกได้ ทำให้โค้ดมีความยืดหยุ่นและนำกลับมาใช้ใหม่ได้มากขึ้น
  • ความน่าเชื่อถือ: รับประกันว่าคลาสย่อยจะปฏิบัติตามข้อตกลงที่กำหนดโดยคลาสหลัก
  • ความสามารถในการคาดการณ์: รับประกันว่าการแทนที่วัตถุคลาสแม่ด้วยวัตถุคลาสย่อยจะไม่ทำให้โปรแกรมเสียหาย[ 9 ]

หลักการแบ่งส่วนอินเทอร์เฟซ

หลักการแยกอินเทอร์เฟซ (ISP) ระบุว่าลูกค้าไม่ควรถูกบังคับให้พึ่งพาวิธีการอินเทอร์เฟซที่พวกเขาไม่ได้ใช้[ 10 ] [ 4 ]

ความสำคัญ:

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

หลักการผกผันการพึ่งพา

หลักการผกผันการพึ่งพา (DIP) ระบุว่าควรพึ่งพาสิ่งที่เป็นนามธรรม ไม่ใช่สิ่งที่เป็นรูปธรรม[ 11 ] [ 4 ]

ความสำคัญ:

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=SOLID&oldid=1357812220 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ แข็ง

ในการเขียนโปรแกรมเชิงวัตถุและการเขียนโปรแกรมเชิงฟังก์ชันSOLIDเป็นตัวย่อที่ช่วยในการจำ สำหรับหลักการห้าประการที่มุ่งทำให้ซอร์สโค้ดเข้าใจง่าย ยืดหยุ่น และบำรุงรักษาได้ง่าย ขึ้น...

หลักการความรับผิดชอบเดียว

หลักการ ความรับผิดชอบเดียว (SRP) ระบุว่าไม่ควรมีเหตุผลมากกว่าหนึ่งข้อสำหรับการเปลี่ยนแปลง คลาส [ 6 ] กล่าวอีกนัยหนึ่งคือ ทุกคลาสควรมีความรับผิดชอบเพียงอย่างเดียว [ 7 ]

หลักการเปิด-ปิด

หลักการ เปิด-ปิด (OCP) ระบุว่าเอนทิตีซอฟต์แวร์ควรเปิดให้มีการขยาย แต่ปิดไม่ให้มีการแก้ไข [ 8 ]

หลักการทดแทนของลิสคอฟ

หลักการ แทนที่ของ Liskov (LSP) ระบุว่าฟังก์ชันที่ใช้พอยเตอร์หรือการอ้างอิงไปยังคลาสพื้นฐานจะต้องสามารถใช้พอยเตอร์หรือการอ้างอิงของคลาสที่สืบทอดมาได้โดยไม่ต้องรู้ [ 9 ]