Low coupling và high cohesion là 2 nằm trong tính đi với nhau như là kim chỉ nam bắt buộc đạt được vào xây dựng, vào nội dung bài viết này, thuộc khám phá xem bọn chúng là gì, làm thế nào để đạt được và tránh những lỗi liên quan cho coupling với cohesion Lúc thiết kế ứ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 trong họ lúc học về các nguyên tắc xây dựng căn uống bản phần lớn biết về tư tưởng coupling này. Coupling đề cùa đến vấn đề phụ thuộc lẫn nhau thân các component. Low coupling, loose coupling có nghĩa là những component không nhiều nhờ vào vào nhau, sự chuyển đổi trong component này hiếm khi, hoặc ko tác động mang đến component kia. Ngược lại, high coupling và tight coupling cho biết thêm những component dựa vào nhiều vào với nhau, Lúc thay đổi 1 component thì những component cơ đông đảo bị tác động và có tác dụng nên biến đổi theo. Tất nhiên, low coupling là kim chỉ nam chúng ta yêu cầu đào bới nhằm bảo đảm an toàn mang lại khối hệ thống không nhiều bị tác động khi gồm đổi khác và cho nên, tăng tốc độ triển khai quá trình với duy trì.


*

Nếu chúng ta nhìn vào hình bên trên, nó mang lại họ thấy một mối contact giữa hai class được điện thoại tư vấn là tight coupling. Class1 sinh sống bên trên tạo nên các đối tượng người tiêu dùng của Class2 thẳng, cùng thậm chí còn là đi cho các biến thành viên cùng truy cập vào. Điều này tạo nên nó cực kỳ phụ thuộc vào vào Class2. Điều gì vẫn xảy ra nếu như chúng ta đưa ra quyết định rằng chúng ta hy vọng thêm tsay đắm số phân phối trong constructor của Class2 và đặt mang định là private? Sau kia, bọn họ phải biến đổi số đông biện pháp thực hiện Class2 ngơi nghỉ những nơi. Không rất đẹp lắm, heh? Có thể là một trong cơn choáng váng rất to lớn và là 1 trong giữa những vụ việc đầu tiên trong kiến tạo.

Dưới đây là ví dụ bởi 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

lấy ví dụ như vào Java, ta đang thêm một interface. Đó là bí quyết Class1 đã chỉ phụ thuộc vào interface kia, chứ chưa phải là implementation thực tiễn của Class2, do đó bớt thiểu sự nhờ vào thẳng giữa 2 class với nhau.

Xem thêm: Bình Luận Tạm Tính Tiếng Anh Là Gì ? Tạm Tính Trong Tiếng Tiếng Anh

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

Lợi điểm của Law of Demeter là nó góp khối hệ thống của họ tại vị trước đều đổi khác bằng phương pháp bớt coupling tuyệt có cách gọi khác là bí quyết design loose coupling, gần như sự đổi khác đang là nhỏ độc nhất vô nhị trường hợp hoàn toàn có thể.

COHESION

Còn high cohesion (trái ngược cùng với nó là low cohesion) là gì? Khi kể đến cohesion họ suy nghĩ cho trách nhiệm của từng module. Nhiệm vụ của từng module càng rõ ràng cùng bóc tách biệt thì cohesion càng tốt (high cohesion), và chính là mục tiêu đề nghị đạt mức Khi xây đắp. Giải phù hợp bằng code có lẽ sẽ không rõ ràng, hãy cẩn thận câu bên dưới đây:

Tại kỳ họp Quốc hội thứ năm, Lúc thảo luận về thống trị unique lau chùi và vệ sinh an ninh thực phẩm có vị đại biểu Quốc hội đã ví bài toán tất cả tới 5 cỗ Chịu trách rưới nhiệm thiết yếu điều đó cũng giống như “nhiều sãi không ai đóng cửa chùa”.Bởi vắt, nắm rõ trách nát nhiệm của từng phòng ban quản lý Nhà nước về bình yên thực phđộ ẩm là một trong tận hưởng được nhấn mạnh Lúc sản xuất Dự Luật An toàn thực phẩm.

Nếu xem Dự Luật An toàn thực phđộ ẩm là một trong những feature thì cụ thể nó dường như không dành được tính high cohesion trong thi công do nó cần giàn trải và dựa vào vào tương đối nhiều module (5 bộ, phòng ban) khác biệt. Do kia, Khi đề xuất sửa đổi bổ sung cập nhật dự phương tiện sẽ tương đối khó khăn bởi phải sửa 1 thời gian 5 module, nhưng bạn thấy kia, điều đó cụ thể là khó. Nếu quy trách nát nhiệm kiến thiết bộ biện pháp này cho một bộ ban độc nhất thì đã sút tính phức tạp và do đó, tăng tính cohesion. High cohesion hay giành được ví như ta tuân thủ theo cơ chế 1-1 nhiệm (Single responsibility principle), từng module, lúc đó chỉ phụ trách một trọng trách duy nhất, ko hơn không kém, với không tồn tại cthị trấn 2 module cùng có tác dụng một trọng trách, một anh tài.

Xem thêm: Tra Từ Bank Sort Code Là Gì ? Mã Liên Quan Bic Code Làm Thế Nào Để Tìm Mã Sort Code

Đến phía trên chắc hẳn ai ai cũng phát âm được rồi đúng không? Ít tốt nhất là về mặt định hướng, hãy cẩn thận bảng sau trước khi bản thân đi vào các dẫn giải tiếp theo sau.