Loose coupling là gì

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


*

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

Dưới đấy 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ụ như vào Java, ta sẽ thêm một interface. Đó là giải pháp Class1 vẫn chỉ dựa vào vào interface kia, chứ chưa hẳn là implementation thực tế của Class2, cho nên vì vậy bớt tđọc sự nhờ vào thẳng giữa 2 class với nhau.

Xem thêm: Atrial Fibrillation Là Gì - Tim Của Bạn Đã Từng Lỗi 1 Nhịp

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

Lợi điểm của Law of Demeter là nó giúp hệ thống của chúng ta tại vị trước hầu hết biến hóa bằng phương pháp sút coupling giỏi còn gọi là biện pháp kiến thiết loose coupling, những sự biến hóa vẫn là bé dại duy nhất nếu rất có thể.

COHESION

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

Tại kỳ họp Quốc hội lắp thêm năm, Khi trao đổi về cai quản unique vệ sinh an toàn thực phẩm bao gồm vị đại biểu Quốc hội sẽ ví bài toán bao gồm tới 5 bộ chịu đựng trách nát nhiệm bao gồm như thế cũng giống như “nhiều sãi không có bất kì ai tạm dừng hoạt động chùa”.Bởi cố, hiểu rõ trách nát nhiệm của từng cơ quan thống trị Nhà nước về an toàn thực phẩm là 1 trong những đòi hỏi được nhấn mạnh lúc xây dừng 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ì ví dụ nó đã không đã có được tính high cohesion vào thiết kế vì chưng nó phải trang trải với nhờ vào vào không hề ít module (5 bộ, chống ban) không giống nhau. Do đó, khi phải chỉnh sửa bổ sung dự cách thức sẽ rất khó khăn vày phải sửa 1 cơ hội 5 module, nhưng mà chúng ta thấy đó, điều này ví dụ là tương đối khó. Nếu quy trách nhiệm gây ra cỗ vẻ ngoài này cho một bộ ban độc nhất vô nhị thì vẫn sút tính phức hợp và cho nên vì vậy, tăng tính cohesion. High cohesion hay đã đạt được nếu ta tuân thủ theo chế độ đối kháng nhiệm (Single responsibility principle), từng module, khi đó chỉ đảm nhiệm một trách nhiệm tuyệt nhất, ko rộng không kém, với không tồn tại cthị trấn 2 module cùng làm một trách nhiệm, một anh tài.

Xem thêm: Dầu Nhớt Tiếng Anh Là Gì ? Cặn Dầu Nhớt Trong Tiếng Anh Là Gì

Đến đây chắc chắn ai cũng gọi được rồi đúng không? Ít độc nhất vô nhị là về khía cạnh lý thuyết, hãy chu đáo bảng sau trước lúc bản thân đi vào những dẫn giải tiếp sau.


Chuyên mục: Công Nghệ