DesignPatternsBook
DesignPatternsBook copied to clipboard
3.1 Паттерн Адаптер (Adapter) - Языковые адаптеры
TODO: нужна обратная связь от рецензентов. Насколько понятен раздел?!?!?
Раздел более чем понятен и полезен для общего развития. Но IMHO тикие примеры использования паттернов мне кажуться слегка искусственными и притянутыми за уши. Т.е. я скорее за то что бы его остатавить, потому что пример полезен, но чистота примера вызывает сомнения.
Да, пример искусственный.
Проблема в том, что мне довольно сложно привести пример кастомной коллекции... Пока тогда так: раздел - оставляем. Если придет на ум более вменяемый пример - меняем пример. Иначе, останется так как есть.
Серега, возможно, я придумал пример. Если ты говоришь, что в 6 шарпе достаточно метода расширения Add и даже IEnumerable не нужен, то такая запись будет валидной, по идее:
class Program
{
static void Main(string[] args)
{
var someString = new StringBuilder { "1", "2", "3", "4" };
// используем someString...
}
}
public static class StringBuilderExtensions
{
public static void Add(this StringBuilder builder, string value)
{
builder.Append(value);
}
}
Серег, там нужно, чтобы класс реализовывал IEnumerable. Так что со стрингбилдером пример работать не будт.
Тогда плохо, а смотрелось прикольно вроде...
Я опять про пример. Возможно, стоит как пример, вставить какой-нибудь метод Rx? Тогда можно показать, как можно работать с push-коллекциями используюя sql-like linq синтаксис, можно даже твой любимый пример с троттлингом показать
Пока не понял, какое отношение имеет Rx к методу расширения Add?
никакого, ты просто покажешь примером языкового адаптера не инициализатор коллекций, а sql-like синтаксис линка
Не понял:) А в чем смысл показывать linq синтаксис, когда я хочу показать инициализатор коллекций? Ведь инициализатор коллекций для Rx-а - это же плохой пример.
Чего-то я запутался:(
АААА! Изначально ты хотел показать пример того, что мы можем подстроить свой код под какой синтаксический сахар так, что код будет с ним работать, так? То есть, в примере ты показал, что у тебя есть коллекция с методом Insetrt вместо Add, а сам Add там как метод расширения.
Так вот я предлагаю отойти от примера с коллекциями, и показать "адаптацию к сахару" на примере линка, тем более сам пример реален и широко используем
Ага, теперь и я тебя понял.
Ок, можно подумать по этому поводу. Но тут нужен тогда не Rx, а custom Rx?
В общем, я тебя понял. Подумаю в этом направлени..
Зачем кастомный? Наоборот, приведи метод Where например, естественно не весь, а основной его функционал и пример с его использованием, заодно покажешь, что такие адаптеры не просто возможность, но они во всю используются и даже очень успешно
ХЗ, это же не с нуля... Ок, я подумаю, может ты и прав.