Câu cá — trồng rau — Coding, mà sau này về già lại về hết quê thôi

[Swift] — SOLID

Diễn giải về SOLID thì đã có khá nhiều bài viết, ví dụ bài này .
Dưới đây mô tả lại SOLID bằng swift cho nó dễ hình dung.
1. Nguyên tắc S: The Single Responsibility Principle (SRP)

Nội dung:
THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE.

Hiểu nôm na là mỗi class chỉ nên chịu trách nhiệm làm một nhiệm vụ.
Hiểu rộng ra là mỗi function cũng chỉ nên làm một nhiệm vụ duy nhất.
Cách code cũ kiểu smell như sau:

Nhìn đoạn code trên thì class Handler đang xử lý nhiều nhiệm vụ cùng lúc:
+requestData

+parseData

+saveData

Nguyên tắc S chỉ dẫn rằng, nên tách thành 3 class riêng, mỗi class xử lý 1 nhiệm vụ riêng biệt:

2. Nguyên tắc O: The Open-Closed Principle (OCP)

Nội dung: 
SOFTWARE ENTITIES (CLASSES, MODULES, FUNCTIONS, ETC.) SHOULD BE OPEN FOR EXTENSION, BUT CLOSED FOR MODIFICATION.

Hiểu là, có thể dễ dàng mở rộng , nhưng không được thay đổi nội dung trong class/module/function

Ví dụ có class Logger như sau, nhiệm vụ là printDetails chi tiết Car:

Bây giờ có thêm loại xe mới, giả sử nhét thêm Bicycle, khi đó thường là sẽ tiếp tục can thiệp vào class Logger đó.

Cứ như vây, thói quen là cứ thêm loại xe mới là là lại đập/sửa class Logger đó.

Để áp dụng nguyên tắc O, nên sử dụng protocol, do đều implement chức năng printDetail nên sử dụng protocol trong trường hợp này là hợp lý. Protocol này sẽ được implement trong từng class con [Car, Bicycle], thay vì implement trong lớp Logger.

3. Nguyên tắc L:The Liskov Substitution Principle (LSP)

FUNCTIONS THAT USE POINTERS OR REFERENCES TO BASE CLASSES MUST BE ABLE TO USE OBJECTS OF DERIVED CLASSES WITHOUT KNOWING IT.
(Continue…)
Show your support

Clapping shows how much you appreciated tranhieu’s story.