Это все еще шаблон адаптера? - PullRequest
2 голосов
/ 04 августа 2010

Я наткнулся на этот класс и задавался вопросом, может ли XYZAdapter быть правильным именем.Я знаю, как работает шаблон адаптера, но это решение немного отличается: вместо реализации интерфейса DataTable и отображения соответствующих вызовов методов, я создаю новый объект DataTable, копируя значения и выставляя этот объект.Вот как это выглядит:

class Adapter
{
    private NodeList list;
    DataTable table { get { return CreateTable(); } }

    Adapter(NodeList nl)
    {
        list = nl;
    }

    private DataTable CreateTable()
    {
        // Fetch Data in NodeList, create a Table and return it
        // needs to be splitted in smaller methods ;D
    }
}

Обычно я делаю это так, но интерфейс DataTable огромен:

class Adapter : DataTable
{
    private NodeList list;
    DataTable table { get { return CreateTable(); } }

    Adapter(NodeList nl)
    {
        list = nl;
    }
    // Here are all the DataTable methods mapped to NodeList
}

Заранее спасибо!

1 Ответ

4 голосов
/ 04 августа 2010

Адаптер адаптирует несовместимый интерфейс к совместимому.например, он преобразует / оборачивает круглый колышек в квадратный колышек, чтобы он соответствовал квадратному слоту.

Технически ваше решение не является шаблоном адаптера - это скорее переводчик или преобразователь.Основное отличие состоит в том, что ваш адаптер не может быть заменен в методах, ожидающих экземпляр DataTable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...