SOLID là 5 nguyên tắc thiết kế giúp code dễ maintain và mở rộng. (S) Single Responsibility: mỗi class chỉ có một lý do để thay đổi, một trách nhiệm duy nhất.
Ví dụ: UserRepository chỉ xử lý persistence, UserValidator chỉ xử lý validation. (O) Open/Closed: mở để mở rộng (extend), đóng để sửa đổi (modify) — mở rộng qua subclassing/composition mà không thay đổi code có sẵn. Cả hai giảm coupling và tăng testability.