paint-brush
Mẫu thiết kế mặt tiền là gì?từ tác giả@ssukhpinder
599 lượt đọc
599 lượt đọc

Mẫu thiết kế mặt tiền là gì?

từ tác giả Sukhpinder Singh4m2023/02/28
Read on Terminal Reader

dài quá đọc không nổi

Một mẫu thiết kế mặt tiền cung cấp một điểm vào duy nhất cho một hệ thống con, che giấu sự phức tạp của nó khỏi máy khách. Trong ví dụ của chúng tôi, chúng tôi có thể tạo một mặt tiền cung cấp giao diện thống nhất cho các hệ thống con kiểm kê, thanh toán và vận chuyển. Bài viết trình bày các mẫu thiết kế Mặt tiền bằng ngôn ngữ lập trình C#.
featured image - Mẫu thiết kế mặt tiền là gì?
Sukhpinder Singh HackerNoon profile picture
0-item

Khi các ứng dụng phát triển về quy mô và độ phức tạp, việc quản lý sự phụ thuộc lẫn nhau giữa các hệ thống con có thể trở nên khó khăn. Một mẫu thiết kế mặt tiền đơn giản hóa sự tương tác này và cung cấp một giao diện hợp nhất cho một tập hợp các giao diện trong một hệ thống con.

Trường hợp sử dụng

Hãy xem xét một ứng dụng mua sắm trực tuyến cho phép khách hàng duyệt các sản phẩm, thêm chúng vào giỏ hàng và thanh toán. Ứng dụng này có các hệ thống con khác nhau chịu trách nhiệm quản lý các bộ phận khác, chẳng hạn như hệ thống kiểm kê, thanh toán và vận chuyển. Các hệ thống con này có các giao diện khác nhau và cần giao tiếp với nhau để hoàn tất giao dịch mua.


Vấn đề là việc quản lý giao tiếp này giữa các hệ thống con có thể khó khăn khi ứng dụng phát triển. Các thay đổi trong một hệ thống con có thể có tác động xếp tầng lên các hệ thống con khác, dẫn đến cơ sở mã bị rối và khó bảo trì.


Chúng ta có thể sử dụng mẫu thiết kế mặt tiền để đơn giản hóa sự tương tác giữa các hệ thống con. Một mẫu mặt tiền cung cấp một điểm vào duy nhất cho một hệ thống con, che giấu sự phức tạp của nó khỏi máy khách. Trong ví dụ của chúng tôi, chúng tôi có thể tạo một mặt tiền cung cấp giao diện thống nhất cho các hệ thống con kiểm kê, thanh toán và vận chuyển.

điều kiện tiên quyết

  • Kiến thức cơ bản về các khái niệm OOPS.
  • Bất kỳ kiến thức ngôn ngữ lập trình.

Bài viết trình bày các mẫu thiết kế Mặt tiền bằng ngôn ngữ lập trình C#.

Mục tiêu học tập

  • Cách viết mã bằng mẫu thiết kế Mặt tiền

Bắt đầu

Hãy bắt đầu bằng cách xác định giao diện cho các hệ thống con của chúng tôi

 public interface IInventorySystem { void Update(int productId, int quantity); bool IsAvailable(int productId, int quantity); } public interface IPaymentSystem { bool Charge(double amount); } public interface IShippingSystem { bool Ship(string address); }


Tiếp theo, chúng ta có thể triển khai các hệ thống con:

 public class InventorySystem : IInventorySystem { public void Update(int productId, int quantity) { // update inventory } public bool IsAvailable(int productId, int quantity) { // check if inventory is available return true; } } public class PaymentSystem : IPaymentSystem { public bool Charge(double amount) { // charge the customer return true; } } public class ShippingSystem : IShippingSystem { public bool Ship(string address) { // ship the product return true; } }


Cuối cùng, chúng ta có thể tạo một mặt tiền cung cấp giao diện đơn giản cho các hệ thống con này:

 public class OrderFacade { private IInventorySystem _inventorySystem; private IPaymentSystem _paymentSystem; private IShippingSystem _shippingSystem; public OrderFacade() { _inventorySystem = new InventorySystem(); _paymentSystem = new PaymentSystem(); _shippingSystem = new ShippingSystem(); } public bool PlaceOrder(int productId, int quantity, double amount, string address) { bool success = true; if (_inventorySystem.IsAvailable(productId, quantity)) { _inventorySystem.Update(productId, -quantity); success = success && _paymentSystem.Charge(amount); success = success && _shippingSystem.Ship(address); } else { success = false; } return success; } }


Trong lớp OrderFacade , chúng tôi tạo các phiên bản của các hệ thống con và cung cấp một phương thức đơn giản PlaceOrder lấy id sản phẩm, số lượng, số tiền và địa chỉ giao hàng. Kỹ thuật PlaceOrder sử dụng các hệ thống phụ để kiểm tra hàng tồn kho, tính phí khách hàng và vận chuyển sản phẩm.

Với mẫu mặt tiền, mã máy khách có thể tạo một thể hiện của lớp OrderFacade và gọi phương thức PlaceOrder mà không phải lo lắng về các chi tiết của hệ thống con.


 var order = new OrderFacade(); bool success; // place an order success = order.PlaceOrder(productId: 123, quantity: 1, amount: 99.99, address: "123 Main St"); if (success) { Console.WriteLine("Order placed successfully"); } else { Console.WriteLine("Unable to place order"); }


Trong ví dụ này, chúng tôi đã sử dụng mẫu mặt tiền để đơn giản hóa sự tương tác giữa các hệ thống con trong ứng dụng mua sắm trực tuyến. Mã máy khách chỉ cần tương tác với lớp `OrderFacade` và không cần biết về các hệ thống con kiểm kê, thanh toán và vận chuyển.

Phần kết luận

Mẫu thiết kế mặt tiền đơn giản hóa sự tương tác giữa các hệ thống con và cung cấp một giao diện hợp nhất cho một tập hợp các giao diện trong một hệ thống con. Nó có thể giúp giảm khớp nối và cải thiện khả năng bảo trì của các ứng dụng lớn và phức tạp. Bài viết này khám phá mẫu thiết kế mặt tiền trong C# với các ví dụ về trường hợp sử dụng và mã. Bằng cách sử dụng mẫu mặt tiền, chúng ta có thể đơn giản hóa cơ sở mã và giúp bảo trì và mở rộng dễ dàng hơn.


Cảm ơn bạn đã đọc, và tôi hy vọng bạn thích bài viết. Vui lòng cung cấp phản hồi của bạn trong phần bình luận.

theo tôi trên

Ấn bản C# , Nhà phát triển. đến , Pinterest , Substack , Hashnode , Write.as

Nhiều mẫu thiết kế hơn — Tham khảo Linkedin Learning


Cũng được xuất bản ở đây.