60 lượt xem

Loose coupling là gì? Kiến thức chi tiết về Loose coupling | Acb-win.com

Các xu hướng lập trình hiện đại gần đây như API, microservices, vùng chứa được thiết kế để tái sử dụng và thay thế mà không ảnh hưởng quá nhiều đến các kết nối hiện có được gọi là Khớp nối lỏng. Vậy giao phối lỏng lẻo là gì? Ý nghĩa thực sự của Khớp nối lỏng là gì? Những câu hỏi này sẽ được Tino Group giải đáp trong bài viết dưới đây!

Tìm hiểu thêm về phù hợp lỏng lẻo

Giao phối là gì?

Ghép nối được sử dụng như một cách để kết nối các dịch vụ phần mềm. Kết nối giữa các dịch vụ trong phần mềm có thể ít phụ thuộc hơn hoặc kết nối chặt chẽ với nhau; chúng thậm chí không cần phải được liên kết với nhau. Mỗi phương pháp kết nối này đều có những ưu nhược điểm và phù hợp với những mục đích sử dụng khác nhau.

Bài viết sẽ chỉ đề cập đến Lỏng lẻo vừa vặnkết nối ít phụ thuộc hơnVừa vặnkết nối chặt chẽ.

phù hợp lỏng lẻo

Phù hợp lỏng lẻo là gì?

Lỏng lẻo vừa vặn Cũng được biết đến như là khớp nối thấp. Đây là một mẫu thiết kế khuyến khích việc triển khai nhiều dịch vụ với các vai trò riêng biệt và hạn chế mức độ phụ thuộc lẫn nhau trong một chương trình.

Để bạn đọc phổ thông cũng có thể hiểu được mô hình này, Tino Group sẽ lấy một ví dụ đơn giản từ thực tế mà bạn gặp phải hàng ngày!

Ví dụ, mặc quần áo của bạn. Trong tủ đồ (nhất là đối với các bạn nữ) sẽ có những bộ quần áo đi làm, đi chơi, đi ngủ, thậm chí là mặc sáng, chiều, v.v. Trang phục là thứ ngoài cơ thể. , nó không liên quan gì đến cơ thể hay làn da của bạn.

Vì vậy, bạn có thể thay đổi trang phục của mình theo ý muốn. Thay quần áo sang màu đen hoặc trắng sẽ không ảnh hưởng đến làn da và cơ thể của bạn.

Được kết nối với thiết kế phần mềm, đặc biệt là microservices, bạn sẽ thấy những điểm tương đồng giữa chúng. Các dịch vụ trong microservice sẽ không quá phụ thuộc vào nhau. Nếu bạn muốn thay đổi một dịch vụ nội bộ, bạn chỉ cần đăng xuất và thực hiện thay đổi.

Áo sẽ làm việc của áo, quần sẽ làm việc của quần, mỗi dịch vụ sẽ có một chức năng riêng. Khi thay chỉ cần tháo ra và thay thế, không ảnh hưởng đến các dịch vụ khác.

phù hợp lỏng lẻo

Vừa khít là gì?

Không giống như khớp nối lỏng lẻo, Vừa vặn Tốt khớp nối cao là một nhóm các dịch vụ / lớp bị ràng buộc, phụ thuộc vào các dịch vụ / lớp khác trong chương trình.

Phù hợp lỏng lẻo là gì?  Kiến thức chi tiết về Khớp nối rời 3

QUẢNG CÁO

Chưa kể đến sự tiến bộ của y học, yếu tố môi trường và mỹ phẩm ví dụ như da người hay một bộ phận nào đó trên cơ thể con người đều liên kết chặt chẽ với nhau và không dễ thay đổi.

Còn nếu bạn muốn thay đổi làn da của mình từ trắng thành đen? Bạn sẽ phải lột da và khoác lớp da mới lên cơ thể? Ồ! Chỉ nghĩ đến điều đó thôi cũng khiến tôi phát ngán!

phù hợp lỏng lẻo

Tương tự như kết nối của da với cơ và cơ với xương, ôm khít là một mô hình phần mềm cổ điển được phát triển với tính năng vừa khít. Nếu bạn muốn thay đổi, bạn sẽ phải thực hiện cấu trúc lại hoàn toàn phần mềm. Việc này tiêu tốn một lượng lớn tài nguyên, gây đau nhức, ê ẩm và tôi không chắc liệu làn da mới có thực sự phù hợp với cơ thể bạn hay không.

Kiến thức chi tiết về Khớp nối lỏng

Tại sao nó phải bắt đầu với sự phù hợp lỏng lẻo?

Tương thích với xu hướng phát triển

Nếu bạn thường xuyên theo dõi sự phát triển của công nghệ và quan tâm đến các khái niệm cực kỳ phổ biến như: RESTful API, microservices hay container, thì tất cả các khái niệm / xu hướng này đều tuân theo mô hình khớp nối lỏng lẻo.

API RESTful là một công nghệ phải có khả năng mở rộng, có thể thay đổi dựa trên trường hợp sử dụng, có thể mở rộng và sử dụng nhiều tài nguyên. Bỏ qua phần sâu, mô hình khớp nối Loose là mô hình hoàn hảo nhất cho các API RESTful.

Với việc ghép nối ít phụ thuộc vào nhau hơn, bạn sẽ có thể mở rộng, nâng cao các chức năng và dễ dàng tăng hiệu suất tổng thể mà không ảnh hưởng đến các dịch vụ phần mềm khác.

phù hợp lỏng lẻo

Tiết kiệm tài nguyên đáng kể

Giả sử bạn là nhà cung cấp dịch vụ vận chuyển. Bạn đã thuê lập trình viên viết phần mềm có thể giúp người dùng đặt hàng và tính toán cho đơn vị đối tác A, sau đó phát triển phần mềm, giao diện riêng cho đối tác B, C, D, E, F … Điều này sẽ tiêu tốn rất nhiều tài nguyên!

Tuy nhiên, bạn có thể thuê lập trình viên phát triển API và cung cấp API cho các đơn vị đối tác để họ “nhúng” vào website của mình, sửa và giúp khách hàng xem giá. Đơn hàng có giá bao nhiêu hoặc ước tính thời gian hàng đến nơi, v.v. Điều này sẽ giúp bạn tiết kiệm tài nguyên và tập trung vào dịch vụ xây dựng.

Bạn có thể tham khảo API của các ví điện tử và nhà mạng lớn trên toàn quốc để hiểu rõ hơn nhé!

phù hợp lỏng lẻo

Hạn chế ảnh hưởng, xâm hại tài nguyên

Một trong những ưu điểm lớn nhất của mô hình ghép nối lỏng là nó hạn chế sự phụ thuộc giữa các dịch vụ và các lớp trong một ứng dụng.

Khi bạn muốn thêm một dịch vụ, chỉ cần tạo các liên kết giữa dịch vụ mới và dịch vụ cũ.

Trong trường hợp một dịch vụ nào đó bị tấn công hoặc gặp sự cố, việc gỡ lỗi sẽ trở nên dễ dàng hơn. Lý do là vì với chỉ báo lỗi rõ ràng hơn, bạn sẽ nhanh chóng tìm ra dịch vụ / lớp phù hợp => cô lập và sửa chữa chúng. Nếu dịch vụ bị lỗi do hacker tấn công thì hacker cũng rất khó tấn công các module dịch vụ khác vì chúng độc lập và có ít liên kết với nhau.

Hơn nữa, các dịch vụ / tầng có thể hoạt động độc lập với nhau, không tranh giành tài nguyên của nhau trong quá trình hoạt động.

Tuy nhiên, điểm này cũng sẽ gây khó khăn cho việc phát triển phần mềm, chẳng hạn như:

  • Phải phát triển từng mô-đun dịch vụ riêng biệt
  • Nếu đó là một chương trình nhỏ được triển khai theo mô hình microservices, nó sẽ tiêu tốn rất nhiều tài nguyên.
  • Mỗi dịch vụ phải có hệ thống bảo mật được thiết kế riêng.

Cách triển khai khớp nối lỏng lẻo

Trên trang C # Corner có một ví dụ rất hay và thực tế, Tino Group sẽ copy làm ví dụ để các bạn hiểu cách triển khai Loose coupling!

Đầu tiên, chúng tôi sẽ phát triển một khớp nối chặt chẽ cho điều khiển từ xa C # như sau:

namespace
TightCoupling
{
public class Remote
{
private Television Tv { get; set;}
protected Remote()
{
Tv = new Television();
}
static Remote()
{
_remoteController = new Remote();
}
static Remote _remoteController;
public static Remote Control
{
get
{
return _remoteController;
}
}
public void RunTv()
{
Tv.Start();
}
}
}

Trong số đó, chúng tôi thấy ưu điểm dễ thấy nhất là mô hình này đơn giản, ít code và dễ thực hiện. Tuy nhiên, nếu nhà sản xuất muốn tích hợp chiếc remote này không chỉ cho tivi mà còn dùng để điều khiển nhiều thứ khác thì sao?

Lúc này, giao phối lỏng lẻo sẽ là hình mẫu để phát huy sức mạnh. Bạn có thể tạo mã cho bộ điều khiển như sau:

public interface IRemote
{
void Run();
}
public class Television : IRemote
{
protected Television()
{
}
static Television()
{
_television = new Television();
}
private static Television _television;
public static Television Instance
{
get
{
return _television;
}
}
public void Run()
{
Console.WriteLine("Television is started!");
}
}
public class Remote
{
IRemote _remote;
public Remote(IRemote remote)
{
_remote = remote;
}
public void Run()
{
_remote.Run();
}
}

Khi muốn điều khiển TV, bạn chỉ cần phát triển một module riêng để điều khiển TV như sau:

class Program
{
static void Main(string[] args)
{
Remote remote = new Remote(Television.Instance);
remote.Run();
Console.Read();
}
}

Khi nhìn vào ví dụ, bạn sẽ thấy rằng kiểu giao phối lỏng lẻo phức tạp hơn nhiều so với kiểu giao phối chặt chẽ. Tuy nhiên, bất cứ khi nào bạn muốn, bạn có thể đưa chức năng điều khiển từ xa lên cấp độ tiếp theo.

Bạn chỉ cần phát triển các mô-đun cơ bản và bạn không phải thiết kế lại bộ điều khiển của mình. Điều này sẽ giúp bạn không phải thiết kế nhiều điều khiển từ xa khác nhau, bạn có thể sử dụng điều khiển từ xa tivi để bật điều hòa, tạo chìa khóa ô tô hay bất kỳ chức năng nào bạn muốn.

phù hợp lỏng lẻo

Đến đây, Tino Group hy vọng bạn đã hiểu rõ hơn về kiểu giao phối lỏng lẻo. Thật vậy, tiêu tốn nhiều nguồn lực hơn để thực hiện mô hình này. Tuy nhiên, Khớp nối lỏng vẫn là một mô hình rất đáng quan tâm. Nếu có sai sót trong bài viết, mong các bạn liên hệ ngay với Tino Group để chúng tôi chỉnh sửa thông tin cho phù hợp hơn hoặc các bạn có những ví dụ hay hơn, Tino Group sẵn sàng góp ý từ các bạn!

Bài viết có sự tham khảo từ nhiều nguồn: Nordic API, stackoverflow, viblo, topdev, …

Câu hỏi thường gặp về phù hợp lỏng lẻo

Tôi nên sử dụng khớp lỏng hay khớp chặt?

Tùy thuộc vào dịch vụ hoặc phần mềm bạn muốn phát triển, bạn có thể chọn giữa Khớp nối lỏng hoặc Khớp nối chặt.

Giao phối thả rông bền vững cần chú ý những yếu tố nào?

Để một mô hình Loose giao phối phát triển lâu dài, bạn sẽ cần chú ý đến: lưu trữ, phát triển, kết nối và tính toán, và nhiều thứ khác. Bạn có thể tìm hiểu thêm trong tài liệu AWS.

“Người mới bắt đầu” có nên biết về giao phối lỏng lẻo hay không?

Vâng, nếu bạn muốn phát triển trong tương lai, Khớp nối lỏng là một mô hình tuyệt vời để noi theo. Tuy nhiên, tốt hơn hết là bạn nên bắt đầu triển khai ứng dụng với trang phục vừa khít vì vừa khít sẽ dễ dàng hơn.

Phần mềm đơn giản nên sử dụng mô hình nào?

Có lẽ bạn đã có câu trả lời cho câu hỏi của tôi, khớp nối chặt chẽ sẽ phù hợp với các phần mềm và chương trình đơn giản. Trong khi đó, khớp nối Loose sẽ phù hợp với các chương trình phức tạp với nhiều chức năng.

CÔNG TY TNHH TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Lầu 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, P. Bến Nghé, Q.1, TP.
    VPĐD: 42 Trần Phú, P.4, Q.5, TP.HCM
  • Điện thoại: 0364 333 333
    Tổng đài miễn phí: 1800 6734
  • Email: sales@tino.org
  • Trang web: www.tino.org

READ  Thẻ ATM gắn chip là gì? Tại sao nên dùng thẻ gắn chip? | Acb-win.com