SOLID là moột khái niệm được đề xuất bởi Robert C. Martin để hỗ trợ việc phát triển mã nguồn linh hoạt và dễ bảo trì. Nó đươợ viết tắt bởi chữ cái đầu tiên của năm nguyên tắc thiết kế phần mềm quan trọng:
- Single Responsibility Principle
- Open/Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
Ưu điểm
- Dễ maintain vì code theo chuẩn SOLID sẽ tường minh hơn
- Tái sử dụng lại code
- Testing: trở nên dễ dàng hơn khi viết các test case
Nhược điểm
- Tốn nhiều thời gian học
- Quá nhiều class abstract/interface khiến dự án trở nên quá phức tạp
- Phức tạp hoá vấn đề