Giao dịch mặt tiền có giao diện, không triển khai. Mục đích của nó là để ẩn nội bộ phức tạp đằng sau một giao diện duy nhất xuất hiện đơn giản ở bên ngoài. Trong ví dụ từ câu hỏi của bạn, mặt tiền ẩn bốn lớp (Order, OrderLine, Address, BasketItem) đằng sau một phương thức duy nhất.
Phương thức mẫu đề với việc triển khai. Mục đích của nó là để trích xuất các thuật toán phổ biến từ một số thuật toán mà chỉ khác nhau trong một 'điền vào chỗ trống'. Phương thức mẫu trong lớp siêu thực hiện thuật toán phổ biến và mỗi lớp con điền vào các khoảng trắng theo cách riêng của nó.
Vậy tại sao tác giả không sử dụng Mẫu mẫu ở đây?
Sẽ có ý nghĩa khi thực hiện placeOrder
phương thức mẫu nếu có một số phiên bản tương tự của thao tác. Có thể một vài phương pháp như placePhoneOrder
, placeInternetOrder
, placeManuallyEnteredOrder
có thể được cấu trúc lại thành một mẫu đơn placeOrder
với một số lớp con chỉ thực hiện các sự khác biệt cụ thể {phone, internet, manual}.
Nguồn
2009-11-23 09:29:39
Bạn có ý gì khi vẽ đường thẳng giữa Mặt tiền và Mẫu? Mặt tiền là một mô hình cấu trúc và mẫu là một mô hình hành vi- Tôi không thấy làm thế nào bạn có thể liên kết hai? – RichardOD