Tôi có một thành phần cần gọi một dịch vụ cụ thể tùy thuộc vào đầu vào mà nó nhận được. Vì vậy, thành phần của tôi phải xem xét đầu vào và dựa trên cấu hình cho biết "cho đầu vào này gọi dịch vụ này với dữ liệu này" cần phải gọi dịch vụ thích hợp. Các dịch vụ này có một phương thức chữ ký chung và một phương thức cụ thể (mỗi phương thức).Có mẫu thiết kế nào cho điều này không?
Tôi đã nghĩ về một lớp trừu tượng bao gồm chữ ký cho cả ba phương pháp. Việc thực hiện cho hai dịch vụ sẽ ghi đè lên cả ba phương thức (ném NotImplementedException
cho các phương thức không được dịch vụ hiện tại hỗ trợ). Một thành phần có thể được khởi tạo với một bản đồ (cho mỗi kiểu đầu vào sẽ có loại dịch vụ được gọi) cũng sẽ được định nghĩa.
Bạn có cách tiếp cận tốt hơn để đối phó với tình huống này không?
Tôi nghĩ (được gắn thẻ) về DP của nhà máy, nhưng trong trường hợp này, nó phải được kết hợp với một số mẫu khác, để có thể "cấu hình" được. Tôi đã yêu cầu một cách tiếp cận hiện có theo cách này. – ytrewq
Ngoài ra, điều này có thể được liên kết với mẫu Singleton hoặc Object pooling – ytrewq
Mẫu mặt tiền hoặc bộ điều hợp có thể xứng đáng để xem xét trong việc cho phép một số cấu hình tôi nghĩ. –