這是情況。 我們有兩臺來自不同供應商(製造商)的打印機。 我們希望頂級代碼不知道關於提供者的細節,只使用統一的API。 所以我開始提取一個接口。如何設計兩個類似(但不完全)的類?
public interface IPrinterProvider {
bool Connect(string comPort);
bool IsConnected();
}
好的。 現在,我意識到一臺打印機需要密碼屬性,但其他打印機不需要。 那麼,我該怎麼辦?
再次。 據我所知,我會有一個或幾個接口和一些實現者。 但是來電者將如何工作? 我應該創建一個單獨的類,它可能不實現任何接口?例如:
public class CommonPrinterProvider {
private IPrinterProvider printerProvider;
public CommonPrinterProvider(IPrinterProvider printerProvider) {
this.printerProvider= printerProvider;
}
}
所以,共有兩個問題。
您可以通過暴露KeyValuePair列表,讓您需要的參數,如用戶名,密碼等的集合中通過處理第一個問題...這可能再拉由於實施和當時的需要DED。這保持了你的抽象通用性 –