Loose coupling là gì

  -  

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

Bạn đang xem: Loose coupling là gì

Bạn đang xem: Loose coupling là gì


*

Nếu bọn họ nhìn vào hình trên, nó cho chúng ta thấy một mối tương tác giữa nhị class được gọi là tight coupling.

Xem thêm: Cách Lấy Mã Code Chiến Dịch Huyền Thoại Tặng Giftcode Cho Game Thủ 2Game

Class1 ở trên tạo thành các đối tượng người tiêu dùng của Class2 trực tiếp, và thậm chí là đi cho các biến thành viên và truy cập vào. Điều này khiến cho nó rất dựa vào vào Class2. Điều gì sẽ xảy ra nếu chúng ta quyết định rằng chúng ta muốn thêm tham số cung ứng trong constructor của Class2 và đặt mang định là private? Sau đó, chúng ta phải đổi khác mọi cách áp dụng Class2 ở đầy đủ nơi. Không đẹp nhất lắm, heh? hoàn toàn có thể là một cơn đau đầu rất lớn và là một trong những vấn đề thứ nhất trong thiết kế.

Xem thêm: Hướng Dẫn Chơi Slither - Hướng Dẫn Cách Chơi Slither

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

COHESION

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

Đến phía trên chắc ai ai cũng hiểu được rồi đúng không? Ít tốt nhất là về mặt lý thuyết, hãy chăm chú bảng sau trước khi mình đi vào các dẫn giải tiếp theo.