Существует ли шаблон «Картридж»? - PullRequest
0 голосов
/ 29 марта 2009

AndroMDA использует термин «картридж» (например, для встроенной поддержки NHibernate). Насколько я понял, он берет API / компонент, оборачивает его, никогда не добавляет новые функции, упрощает его, часто отнимает «полную мощность», но хорошо работает в большинстве случаев.

Мои вопросы:

  • Широко ли используется термин?

  • Можно ли это правильно определить?

  • Следует ли использовать суффикс "Картридж" в именах классов / методов?

Пример: является ли следующий помощник Base64 картриджем для преобразования Base64? Вы отдаете все силы для настройки производительности, но если вы просто хотите декодировать простую (и маленькую) строку, она отлично работает:

Использование:

   Base64StringCartridge.Decode(input);

Осуществление

public static string Decode(string data)
{
    try
    {
        System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
        System.Text.Decoder utf8Decode = encoder.GetDecoder();

        byte[] todecode_byte = System.Convert.FromBase64String(data);
        int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
        char[] decoded_char = new char[charCount];
        utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
        string result = new String(decoded_char);
        return result;
    }

    catch
    {
        return "";
    }
}

1 Ответ

3 голосов
/ 29 марта 2009

Это называется Фасадный паттерн . Предположительно, ребята из AndroMDA - большие поклонники старых игровых автоматов ...

...