LOOSE COUPLING LÀ GÌ

  -  

Low coupling và high cohesion là 2 ở trong tính đi cùng nhau như thể kim chỉ nam yêu cầu đạt được trong thi công, vào bài viết này, thuộc khám phá coi chúng là gì, làm thế nào nhằm đã đạt được và tránh giảm các lỗi tương quan đến coupling cùng cohesion lúc kiến tạo ứng dụng.

Bạn đang xem: Loose coupling là gì

COUPLING

Low couplingloose coupling hay high coupling và tight coupling, ắt hẳn ai vào họ lúc học về các nguyên tắc xây dựng căn bản đều biết về có mang coupling này. Coupling đề cùa tới vấn đề phụ thuộc cho nhau giữa những component. Low coupling, loose coupling tức là các component không nhiều phụ thuộc vào sát vào nhau, sự đổi khác trong component này ít khi, hoặc ko tác động mang đến component cơ. trái lại, high coupling cùng tight coupling cho biết các component dựa vào những vào nhau, Lúc đổi khác 1 component thì những component kia phần lớn bị tác động và có tác dụng bắt buộc đổi khác theo. Tất nhiên, low coupling là kim chỉ nam chúng ta đề nghị đào bới nhằm bảo vệ đến khối hệ thống ít bị tác động khi tất cả đổi khác cùng cho nên, tăng vận tốc triển khai quá trình với duy trì.


*

Nếu họ chú ý vào hình trên, nó mang đến chúng ta thấy một mối liên hệ giữa nhì class được gọi là tight coupling. Class1 ở trên tạo thành các đối tượng của Class2 trực tiếp, và thậm chí còn là đi mang đến các trở thành viên với truy vấn vào. Điều này làm cho nó vô cùng dựa vào vào Class2. Điều gì vẫn xẩy ra nếu bọn họ quyết định rằng chúng ta ao ước thêm tsay mê số cấp dưỡng trong constructor của Class2 và đặt khoác định là private? Sau đó, chúng ta đề nghị thay đổi đa số biện pháp sử dụng Class2 nghỉ ngơi hồ hết chỗ. Không đẹp lắm, heh? Có thể là 1 trong những cơn chóng mặt rất to lớn và là một trong số những vấn đề thứ nhất vào xây dựng.

Dưới đó là ví dụ bằng code:

public class ClassA private boolean attributeA; public int methodA() if(attributeA) return new ClassB().attributeB; return -1; public String getValue() return new ClassB().getValue(); public class ClassB public int attributeB; public String getValue() return "Heh?!?";

MỘT SỐ GIẢI PHÁP

DEPENDENCY INVERSION

Ví dụ trong Java, ta vẫn thêm một interface. Đó là phương pháp Class1 đang chỉ dựa vào vào interface kia, chđọng không hẳn là implementation thực tế của Class2, cho nên sút tđọc sự phụ thuộc vào trực tiếp thân 2 class với nhau.

Xem thêm: Bản Đồ Quy Hoạch Quận Ba Đình Trong Thời Gian Tới, Thông Tin Quy Hoạch Tại Ba Đình

LAW OF DEMETER (DON’T TALK TO STRANGERS!)

Lợi điểm của Law of Demeter là nó góp hệ thống của chúng ta tại vị trước gần như biến hóa bằng phương pháp sút coupling hay nói một cách khác là cách kiến thiết loose coupling, hồ hết sự biến đổi đã là nhỏ tuổi nhất giả dụ có thể.

COHESION

Còn high cohesion (trái ngược cùng với nó là low cohesion) là gì? Khi nói đến cohesion chúng ta suy nghĩ mang đến trách nhiệm của từng module. Nhiệm vụ của từng module càng ví dụ cùng tách bóc biệt thì cohesion càng tốt (high cohesion), cùng sẽ là mục tiêu buộc phải đạt tới Lúc xây cất. Giải mê thích bởi code có lẽ sẽ không cụ thể, hãy chú ý câu dưới đây:

Tại kỳ họp Quốc hội máy năm, Khi đàm luận về cai quản chất lượng dọn dẹp và sắp xếp an toàn thực phđộ ẩm có vị đại biểu Quốc hội sẽ ví Việc có cho tới 5 cỗ chịu đựng trách nhiệm bao gồm những điều đó cũng tương tự “những sãi không một ai ngừng hoạt động chùa”.Bởi rứa, làm rõ trách rưới nhiệm của từng ban ngành thống trị Nhà nước về bình an thực phđộ ẩm là 1 hưởng thụ được nhấn mạnh khi tạo Dự Luật An toàn thực phđộ ẩm.

Nếu xem Dự Luật An toàn thực phẩm là 1 feature thì ví dụ nó đã không dành được tính high cohesion trong thiết kế vị nó bắt buộc trang trải với phụ thuộc vào không ít module (5 bộ, chống ban) khác nhau. Do đó, khi đề nghị chỉnh sửa bổ sung cập nhật dự dụng cụ sẽ rất trở ngại vì bắt buộc sửa 1 dịp 5 module, nhưng chúng ta thấy kia, điều này ví dụ là tương đối khó. Nếu quy trách rưới nhiệm xây cất bộ cơ chế này cho 1 bộ ban nhất thì vẫn giảm tính tinh vi và do đó, tăng tính cohesion. High cohesion thường xuyên đã đạt được ví như ta tuân hành theo cơ chế 1-1 nhiệm (Single responsibility principle), từng module, lúc ấy chỉ đảm nhận một nhiệm vụ tốt nhất, không hơn không hề thua kém, và không có cthị xã 2 module thuộc có tác dụng một trách nhiệm, một nhân tài.

Xem thêm: Btw, Faq, Fyi, Imho Là Gì - Btw, Faq, Fyi, Imho, Ym Và 40+ Từ

Đến đây dĩ nhiên ai cũng phát âm được rồi đúng không? Ít tuyệt nhất là về khía cạnh lý thuyết, hãy chú ý bảng sau trước khi bản thân lấn sân vào các dẫn giải tiếp sau.