Loose coupling là gì

Low coupling và high cohesion là 2 trực thuộc tính đi với nhau như thể phương châm nên đã đạt được vào thi công, vào bài viết này, thuộc tìm hiểu xem bọn chúng là gì, làm thế nào nhằm giành được và né tránh những lỗi liên quan đến coupling cùng cohesion Khi xây đắp phần mềm.Bạn vẫn xem: Loosely coupled là gì

COUPLING

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

You watching: Loose coupling là gì


*

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

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

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 họ đứng vững trước gần như đổi khác bằng cách giảm coupling giỏi còn gọi là phương pháp thiết kế loose coupling, đông đảo sự biến đổi sẽ là nhỏ dại độc nhất vô nhị trường hợp hoàn toàn có thể.

See more: Cách Lấy Lại Nút Home Trên Iphone, Cách Lấy Nút Home Trên Iphone 6, 7, 8 Nhanh Chóng

COHESION

Còn high cohesion (trái ngược với nó là low cohesion) là gì? Khi nói tới cohesion bọn họ nghĩ cho trọng trách của từng module. Nhiệm vụ của từng module càng ví dụ và tách bóc biệt thì cohesion càng tốt (high cohesion), và chính là mục tiêu buộc phải đạt tới lúc xây cất. Giải mê say bởi code chắc rằng sẽ không ví dụ, hãy chú ý câu dưới đây:

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

See more: Cách Chơi Game Naruto Quyết Đấu 2 4H, Game Bleach Vs Naruto 2 4H

Đến đây chắc hẳn người nào cũng đọc được rồi đúng không? Ít tuyệt nhất là về khía cạnh kim chỉ nan, hãy chú ý bảng sau trước khi bản thân bước vào những dẫn giải tiếp sau.


Chuyên mục: Chia sẻ