What are the SOLID principles?
They are a set of design guidelines for improving the maintainability and scalability of software.
ต้นกำเนิด
หลักการ SOLID ถูกแนะนำโดย Robert C. Martin หรือที่รู้จักกันในชื่อ Uncle Bob ในการออกแบบโปรแกรมเชิงวัตถุในช่วงต้นปี 2000 หลักการเหล่านี้คือการรวบรวมแนวคิดการออกแบบห้าประการที่ช่วยให้นักพัฒนาสร้างระบบซอฟต์แวร์
คำนิยาม
SOLID เป็นคำย่อที่ประกอบด้วยหลักการการออกแบบ 5 ประการในโปรแกรมเชิงวัตถุ: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, และ Dependency Inversion
วัตถุประสงค์
หลักการเหล่านี้ให้กรอบในการออกแบบซอฟต์แวร์ที่ง่ายต่อการบำรุงรักษา เข้าใจ และขยายตัว ช่วยให้นักพัฒนาหลีกเลี่ยงข้อผิดพลาดในการออกแบบและสถาปัตยกรรมทั่วไป
Single Responsibility (SRP)
คลาสควรมีเพียงเหตุผลเดียวในการเปลี่ยนแปลง
Open/Closed (OCP)
เอนทิตีซอฟต์แวร์ควรเปิดรับการขยาย แต่ปิดรับการแก้ไข
Liskov Substitution (LSP)
วัตถุของซูเปอร์คลาสควรสามารถถูกแทนที่ด้วยวัตถุของคลาสย่อยโดยไม่กระทบต่อฟังก์ชันการทำงาน
Interface Segregation (ISP)
หลายๆ อินเตอร์เฟซเฉพาะลูกค้าดีกว่าอินเตอร์เฟซเดียวที่ใช้ทั่วไป
Dependency Inversion (DIP)
โมดูลระดับสูงไม่ควรขึ้นอยู่กับโมดูลระดับต่ำ แต่ทั้งสองควรขึ้นอยู่กับนามธรรม