Loosely coupled là gì

Low coupling và high cohesion là 2 ở trong tính đi cùng nhau như là phương châm cần đã có được trong thiết kế, trong bài viết này, cùng tìm hiểu xem chúng là gì, làm thế nào để đạt được và tránh các lỗi liên quan đến coupling cùng cohesion khi kiến tạo phần mềm.Bạn sẽ xem: Loosely coupled là gì


COUPLING

Low couplingloose coupling hay high coupling và tight coupling, ắt hẳn ai trong chúng ta khi học tập về các nguyên lý lập trình căn bản đều biết về có mang coupling này. Coupling đề cập mang lại vấn đề phụ thuộc vào lẫn nhau giữa những component. Low coupling, loose coupling có nghĩa là các component ít nhờ vào vào nhau, sự đổi khác trong component này ít khi, hoặc không ảnh hưởng đến component kia. Ngược lại, high coupling cùng tight coupling cho thấy thêm các component nhờ vào nhiều vào nhau, khi biến hóa 1 component thì các component kia phần đa bị ảnh hưởng và có tác dụng phải chuyển đổi theo. Tất nhiên, low coupling là mục tiêu chúng ta cần hướng đến để bảo vệ cho khối hệ thống ít bị ảnh hưởng khi có biến hóa và vị đó, tăng vận tốc thực hiện các bước và bảo trì.

Bạn đang xem: Loosely coupled là gì

Bạn vẫn xem: Loosely Coupled Là Gì


*

Nếu họ nhìn vào hình trên, nó cho 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 trên tạo nên các đối tượng người dùng của Class2 trực tiếp, và thậm chí còn là đi mang lại các trở thành viên và truy cập vào. Điều này làm cho nó rất nhờ vào vào Class2. Điều gì sẽ xảy ra nếu bọn họ quyết định rằng họ muốn thêm tham số chế tạo trong constructor của Class2 cùng đặt mặc định là private? Sau đó, họ phải chuyển đổi mọi cách thực hiện Class2 ở phần nhiều nơi. Không rất đẹp lắm, heh? hoàn toàn có thể là một đợt đau đầu rất to lớn và là trong những vấn đề trước tiên trong thiết kế.

Dưới đó 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

LAW OF DEMETER (DON’T TALK to lớn STRANGERS!)

Lợi điểm của Law of Demeter là nó giúp khối hệ thống của chúng ta đứng vững vàng trước mọi thay đổi bằng cách giảm coupling hay nói một cách khác là cách kiến thiết loose coupling, đều sự thay đổi sẽ là nhỏ dại nhất nếu bao gồm thể.

Xem thêm: Danh Sách Sân Bóng Đá Thanh Đa, Sân Bóng Đá Bình Quới

COHESION

Còn high cohesion (trái ngược cùng với nó là low cohesion) là gì? Khi kể đến cohesion bọn họ nghĩ đến trọng trách của từng module. Trách nhiệm của từng module càng ví dụ và tách bóc biệt thì cohesion càng cao (high cohesion), và đó là mục tiêu cần đạt tới mức khi thiết kế. Giải thích bằng code có lẽ rằng sẽ không rõ ràng, hãy chăm chú câu bên dưới đây:

Tại kỳ họp Quốc hội thứ năm, khi đàm đạo về cai quản chất lượng vệ sinh bình yên thực phẩm gồm vị đbqh đã ví việc có tới 5 bộ phụ trách chính như vậy cũng như “nhiều sãi không ai tạm dừng hoạt động chùa”.Bởi thế, hiểu rõ trách nhiệm của từng cơ quan cai quản Nhà nước về an toàn thực phẩm là một trong những yêu ước được nhấn mạnh khi gây ra Dự Luật bình yên thực phẩm.

Đến đây chắc người nào cũng hiểu được rồi đúng không? Ít duy nhất là về phương diện lý thuyết, hãy chu đáo bảng sau trước lúc mình đi vào các dẫn giải tiếp theo.