Low coupling và high cohesion là 2 ở trong tính đi cùng nhau như thể mục tiêu đề nghị đã có được trong xây cất, 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à nên tránh các lỗi liên quan mang lại coupling cùng cohesion khi xây đắp phần mềm.

Bạn đang 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 về các nguyên tắc lập trình sẵn căn uống bản những biết về khái niệm coupling này. Coupling đề cùa đến vấn đề dựa vào lẫn nhau giữa những component. Low coupling, loose coupling Tức là các component ít dựa vào vào nhau, sự biến đổi trong component này hiếm khi, hoặc ko ảnh hưởng đến component kia. Ngược lại, high coupling và tight coupling cho biết thêm các component nhờ vào nhiều vào nhau, lúc biến đổi 1 component thì các component cơ hầu hết bị tác động và có chức năng cần biến hóa theo. Tất nhiên, low coupling là mục tiêu họ đề nghị hướng đến nhằm bảo vệ mang đến hệ thống ít bị tác động Lúc bao gồm thay đổi với vì vậy, tăng tốc độ triển khai quá trình và duy trì.


*

Nếu họ nhìn vào hình bên trên, nó mang lại bọn họ thấy một mối liên hệ giữa nhị class được gọi là tight coupling. Class1 sinh hoạt trên tạo ra những đối tượng người sử dụng của Class2 thẳng, với thậm chí là là đi mang đến những biến thành viên với truy vấn 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ì đã xẩy ra nếu như họ ra quyết định rằng bọn họ mong mỏi thêm tsi mê số cung ứng trong constructor của Class2 với đặt mang định là private? Sau kia, họ phải biến hóa phần đa biện pháp thực hiện Class2 ở phần đa nơi. Không đẹp lắm, heh? Có thể là một trong những cơn đau đầu rất cao và là một trong những giữa những vấn đề đầu tiên vào xây cất.

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

DEPENDENCY INVERSION

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

Xem thêm: Tra Từ Tax Code Là Gì - Nghĩa Của Từ Tax Code Trong Tiếng Việt

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 mọi biến đổi bằng cách sút coupling xuất xắc còn được gọi là phương pháp thiết kế loose coupling, gần như sự biến hóa vẫn là nhỏ tuổi độc nhất ví như có thể.

COHESION

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

Tại kỳ họp Quốc hội thứ năm, Khi thảo luận về quản lý unique 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 vẫn ví vấn đề có cho tới 5 cỗ chịu đựng trách nhiệm bao gồm điều đó cũng như “nhiều sãi không có ai đóng cửa chùa”.Bởi nuốm, hiểu rõ trách nhiệm của từng cơ quan làm chủ Nhà nước về bình an thực phẩm là 1 đòi hỏi được nhấn mạnh khi sản xuất Dự Luật An toàn thực phđộ ẩm.

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

Đến trên đây chắc hẳn ai cũng gọi được rồi đúng không? Ít độc nhất vô nhị là về mặt định hướng, hãy chăm chú bảng sau trước lúc mình lấn sân vào các dẫn giải tiếp sau.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *