Ситуация такая.
Есть два принтера от разных производителей. Мы хотим, чтобы верхний уровень ничего о них не знал и просто пользовался классом с единым набором методов и свойств.
Начинаю выделять интерфейс.
public interface IPrinterProvider {
bool Connect(string comPort);
bool IsConnected();
}
Но выясняется, что одному принтеру нужно передавать пароль для исполнения множества операций, а другому нет.
Как быть?
И ещё.
Как я понимаю, у меня здесь должен получиться один или пару интерфейсов и пару наследников.
А как будет работать вызывающая сторона?
Мне нужно создать отдельный для неё класс, который никаких интерфейсов, в принципе, может и не реализовывать? Например:
public class CommonPrinterProvider {
private IPrinterProvider printerProvider;
public CommonPrinterProvider(IPrinterProvider printerProvider) {
this.printerProvider= printerProvider;
}
}
Итого два вопроса.