SOLID
Last updated
The Single Responsibility Principle (SRP): 1 class chỉ nên chịu 1 trách nhiệm duy nhất
The Open-Closed Principle (OCP): class phải dễ mở rộng nhưng khó chỉnh sửa. Nói đơn giản là bạn có thể thêm function vào class nhưng khó sửa các function hiện tại.
The Liskov Substitution Principle (LSP): nôm na là class con nên có thể thay thế class cha mà không phá vỡ logic của ứng dụng
The Interface Segregation Principle (ISP): Nguyên lý này nêu lên vấn đề interface quá to, khi kế thừa interface (trong swift thì là protocol) sẽ có những property/method không cần thiết ⇒ Chia ra những interface nhỏ hơn và chỉ kế thừa những interface cần thiết
The Dependency Inversion Principle (DIP):
High-level modules should not depend on low-level modules. Both should depend on abstractions. Mô đun cấp cao không được phụ thuộc vào mô đun cấp thấp, cả hai phải phụ thuộc vào một định nghĩa trìu tượng hay một giao diện (interface)
Abstractions should not depend upon details. Details should depend upon abstractions. Định nghĩa trìu tượng (hoặc interface) không được phụ thuộc vào mô đun cụ thể mà ngược lại mô đun cụ thể phải phụ thuộc vào khung trìu tượng.