Как работает шаблон адаптера? - PullRequest
0 голосов
/ 22 апреля 2011

Я недавно читал об Адаптерном паттерне в моем семестровом курсе.Я понял концепцию предоставления общего интерфейса, чтобы сторонние API могли работать в нашей системе.

Но как это будет работать в кодировании, скажем, у меня есть два SDK сторонних производителей, например:

A(String name)

A1(String Firstname,String Lastname)

Теперь я создаю общий интерфейс, который называется, скажем, IAAdapater.А теперь напишите код в этом, теперь мой вопрос, как можно назвать A(String name) или A1(String Firstname,String Lastname) через IAAdapater?

Поправь меня, если я ошибаюсь!

Ответы [ 2 ]

2 голосов
/ 22 апреля 2011

Редактировать Я думаю, что другой ответ ближе к тому, что вы ищете - я на самом деле описываю Фасад здесь.

Ваш IAAdapter должен предоставить методы A (имя строки) и A1 (имя строки, фамилия строки)

Затем вам потребуется реализация этого интерфейса, которая делегирует базовым объектам.

IAAdaptor{
A(string name);
A1(string firstname, string lastnae);
}

Adaptor:IAAdaptor{
A(string name){}
A1(string firstname, string lastnae){}
}
1 голос
/ 22 апреля 2011
interface IAAdapater {
  A(firstname, lastname)
}

// Adapter for A SDK
A_adapter implements IAAdapter {
  A(firstname, lastname) {
    call A(firstname + ' ' + lastname)
  }
}

// Adapter for A1 SDK
A1_adapter implements IAAdapter {
  A(firstname, lastname) {
    call A1(firstname, lastname)
  }
}

Теперь вам нужно беспокоиться только об одном API: имя, фамилия.Различные адаптеры будут обрабатывать все остальное.

call A_adapter.A('will', 'smith');
call A1_adapter.A('will', 'smith');

Пожалуйста, дайте мне знать, если я неправильно понял вопрос.

...