SERIES SOLID PHẦN 2: Single Responsibility Principle
Nội dung nguyên lý : Một class chỉ giữ một trách nhiệm duy nhất , hay nói cách khác , muốn modify class này thì chỉ có một lý do duy nhất
Vi phạm SRP( Single Responsibility Principle)
Ta có ví dụ điển hình trên, một con dao có quá nhiều chức năng. Khi một phần nào đó trong dao bị hư, ta phải tháo ra toàn bộ chức năng sau đó lấp lại, trong khi đó các con dao khác lại không bị hư hỏng gì => tốn kém, tốn thời gian modify, quản lý thời gian không hiệu quả.
Tại sao nên áp dụng SRP?
- Đối với các quy trình phần mềm nói chung việc thay đổi requirement là liên tục và rất dynamic , vì vậy việc chỉnh sửa code cũng liên tục.
- Việc một class quá to sẽ rất khó quản lý , quá cồng kềnh dẫn đến modify rất cực , muốn modify phải đọc lại toàn source?
- Dễ ảnh hưởng đển các module khác.
Áp dụng Single responsibility principle như thế nào?
Để áp dụng với single responsibility principle cụ thể với con dao phía trên ta chỉ phần tách các con dao chức năng thành các class nhỏ hơn, thế là xong. Khi 1 phần dao nào hư, chỉ cần sữa mỗi con dao đó là được.
KẾT LUẬN
Đây là nguyên lý cơ bản và dễ hiểu nhất mà cũng dễ vi phạm nhất, cho nên nó chỉ ngắn gọn như vậy. Tuy nhiên ở một số dự án cụ thể nào đó thì việc gom nhóm chức năng để chia module là việc rất khó đòi hỏi phải có kinh nghiệm.
Cũng có một số lời phản bác, war với nhau trên nhiều diễn đàn "Tao éo thích Single Responsibility Principle" , bla bla bla nhưng mình thấy tụi này rãnh rỗi chả có gì làm, luận điểm đưa ra thì kém thuyết phục nên khuyên các bạn đừng đọc cho mất công :))
Nhận xét
Đăng nhận xét