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)

โมดูลระดับสูงไม่ควรขึ้นอยู่กับโมดูลระดับต่ำ แต่ทั้งสองควรขึ้นอยู่กับนามธรรม