Проще говоря, вы определяете интерфейс для операций, которые вы хотите выполнить, и передаете объект во время выполнения, который реализует этот интерфейс. Так, например, вы можете иметь связь через локальную общую память и через удаленный TCP / IP. Вы создаете интерфейс, называете его IConnection
, который имеет send()
и recv()
, а затем реализуете его в двух классах, LocalConnection
и LongDistanceConnection
.
Затем у вас есть другой класс, который должен общаться, скажем, TelephoneCall
.
Чтобы сделать местный звонок, вы делаете
TelephoneCall call = new TelephoneCall(new LocalConnection());
Чтобы сделать междугородний звонок, вы делаете
TelephoneCall call = new TelephoneCall(new LongDistanceConnection());
и подпись конструктора
public TelephoneCall(IConnection connect);