Loose coupling là gì

     

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


*

Nếu chúng ta quan sát vào hình bên trên, nó cho bọn họ thấy một côn trùng contact thân nhị class được Gọi là tight coupling. Class1 ở bên trên tạo ra những đối tượng người tiêu dùng của Class2 trực tiếp, với thậm chí là là đi đến các biến thành viên cùng truy vấn vào. Vấn đề này tạo cho nó khôn cùng phụ thuộc vào Class2. Điều gì đã xẩy ra ví như chúng ta quyết định rằng bọn họ mong thêm tmê man số chế tạo vào constructor của Class2 với đặt mặc định là private? Sau kia, bọn họ bắt buộc đổi khác phần đông phương pháp sử dụng Class2 sống đa số chỗ. Không đẹp lắm, heh? Có thể là 1 cơn hoa mắt không hề nhỏ với là 1 Một trong những vụ việc đầu tiên trong xây đắp.

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

Ví dụ trong Java, ta sẽ thêm 1 interface. Đó là bí quyết Class1 đang chỉ dựa vào vào interface kia, chứ chưa phải là implementation thực tiễn của Class2, cho nên vì vậy bớt tđọc sự nhờ vào thẳng thân 2 class cùng nhau.

Xem thêm: Internet Download Full: Internet Download Manager 6, Download Idm 6

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

Lợi điểm của Law of Demeter là nó giúp khối hệ thống của chúng ta tại vị trước phần nhiều thay đổi bằng phương pháp bớt coupling tuyệt nói một cách khác là bí quyết kiến thiết loose coupling, các sự biến hóa sẽ là bé dại duy nhất nếu rất có thể.

COHESION

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

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

Nếu coi Dự Luật An toàn thực phẩm là một trong những feature thì rõ ràng nó đã không giành được tính high cohesion vào xây dựng bởi nó phải giàn trải với phụ thuộc vào vào không ít module (5 bộ, chống ban) không giống nhau. Do kia, Khi phải sửa đổi bổ sung cập nhật dự phép tắc sẽ rất trở ngại bởi cần sửa 1 dịp 5 module, nhưng bạn thấy kia, điều ấy rõ ràng là rất khó. Nếu quy trách rưới nhiệm tạo cỗ biện pháp này cho 1 cỗ ban độc nhất vô nhị thì đang giảm tính phức hợp và do đó, tăng tính cohesion. High cohesion hay đã đạt được ví như ta vâng lệnh theo phép tắc solo nhiệm (Single responsibility principle), mỗi module, lúc đó chỉ phụ trách một trọng trách tuyệt nhất, không rộng không hề thua kém, cùng không có cthị xã 2 module thuộc có tác dụng một trách nhiệm, một tính năng.

Đến phía trên kiên cố ai cũng gọi được rồi đúng không? Ít nhất là về phương diện triết lý, hãy để mắt tới bảng sau trước lúc bản thân bước vào những dẫn giải tiếp theo.