solid principles
1.0.0
หลักการความรับผิดชอบเดียว - ชั้นเรียนควรมีเหตุผลเดียวเท่านั้นที่จะเปลี่ยนแปลง
หลักการเปิด/ปิด - เอนทิตีซอฟต์แวร์ ควรเปิดเพื่อขยาย แต่ปิดเพื่อแก้ไข
หลักการทดแทน Liskov - คลาสย่อยไม่ควรทำลายคำจำกัดความประเภทคลาสพาเรนต์
หลักการแยกส่วนต่อประสาน - ไม่ควรบังคับให้ไคลเอ็นต์ขึ้นอยู่กับวิธีที่ไม่ได้ใช้ จำนวนสมาชิกในอินเทอร์เฟซที่มองเห็นได้โดยคลาสที่ขึ้นต่อกันควรลดลง คลาสขนาดใหญ่ใช้อินเทอร์เฟซขนาดเล็กหลายอันที่จัดกลุ่มฟังก์ชันตามการใช้งาน
หลักการผกผันการพึ่งพา - โมดูลระดับสูงไม่ควรขึ้นอยู่กับโมดูลระดับต่ำ ทั้งสองควรขึ้นอยู่กับนามธรรม นามธรรมไม่ควรขึ้นอยู่กับรายละเอียด