Текущий архив: 2007.04.15;
Скачать: CL | DM;
Вниз
Чем хелперы отличаются от адаптеров? Найти похожие ветки
← →
Ш-К (2007-03-20 17:36) [0]И что такого я могу с ними реализовать, что не смог бы реализовать с имплементным интерфейсом?
← →
Джо © (2007-03-20 19:43) [1]В первую очередь тем, что это разные вещи, особенно на уровне реализации :)
← →
Ант (2007-03-20 20:08) [2]Собственно, если у тебя есть уже готовый класс, который ты не можешь менять
например
Memo1.Lines (TStrings)
то как ты собираешься тут вставлять имплементы?
Писать потомка ,а потом везде во всех формах заменять стандартный мемо на свой потомочный?
не гуд.
← →
Ш-К (2007-03-20 21:04) [3]Да, имплементы здесь не причем. Годятся для расширения своих классов.
Но, если мне нужно расширить поведение чужого Memo1.Lines, я напишу:
iStrings: ImyStrings;
...
iStrings := TmyAdapterStrings.Create(Memo1.Lines);
iStrings.SortByLastSymbol;
Зачем нужны хелперы?
← →
Ант (2007-03-20 21:15) [4]
> Ш-К
А вот то, что ты написал, не удобно.
Нужно создать этот самый адаптер - лишняя строка в коде, лишний расход памяти.
Толи дело
Memo1.Lines.SortByLastSymbol;
красота.
разумеется одну и ту же задачу можно решить разными способами. Речь об удобстве
← →
Kolan © (2007-03-20 21:21) [5]> Зачем нужны хелперы?
Ты не понял смысл.
Вот так должнополучится:
Memo1.Lines.SortByLastSymbol
Добейся такого с пом адаптера, тогда будим спорит что лучьше…
← →
MeF Dei Corvi © (2007-03-20 21:30) [6]
> Зачем нужны хелперы?
А зачем усложнять себе жизнь и изобретать велосипеды? :)
← →
Ант (2007-03-20 21:48) [7]Я вот тут провел некоторый рефакторинг своего кода с активным использованием хелперов, и с изменением структуры юнитов.
В результате энтропия существующего кода снизилась очень существенно.
А если о велосипедах рассуждали бы все,
то и ООП никакого не было бы
Хорошо, что есть необусловленные разработчики
← →
default © (2007-03-20 21:57) [8]а что это?:)
← →
Ант (2007-03-20 22:02) [9]
> default ©
Ой! Кто здесь?
← →
Ш-К (2007-03-20 22:19) [10]Значит, помощи от них только убавления пары срочек "лишнего" кода.
А если мне надо рулить типами хелпера в рантайм. Что мне делать?
У хелперов даже наследования нет.
iStrings := GetAdapterClass(SomeState).Create(Memo1.Lines);
Как это на хелперы перевести?
← →
Ант (2007-03-20 22:24) [11]
> Ш-К
</I
> У хелперов даже наследования нет.
>
Есть.
> А если мне надо рулить типами хелпера в рантайм.
А вот этого не надо. Для разных задач - разный инструментарий.
> Значит, помощи от них только убавления пары срочек "лишнего"
> кода.
Это может даже не приводить к сокращению строк.
Всегда доп. метод хелпера можно представить как процедуру с передаваемым тужа параметром эксемпляром класса.
Просто так получается нагляднее
← →
Kolan © (2007-03-21 09:29) [12]> iStrings := GetAdapterClass(SomeState).Create(Memo1.Lines)
> ;
>
> Как это на хелперы перевести?
Извени это ТЫ сравнил «Хелпер» и «Паттерн», сам и отвечай на этот вопрос…
← →
DiamondShark © (2007-03-21 11:17) [13]
> Чем хелперы отличаются от адаптеров?
Хелпер -- это встроенная в язык реализация шаблона Адаптер.
← →
Суслик © (2007-03-21 12:22) [14]Господа, вы описание паттерна "Адаптер" почитайте прежде, чем говорить.
Особенно первые несколько строк, где описание.
Никоего отношения к хелперам не имеет.
Страницы: 1 вся ветка
Текущий архив: 2007.04.15;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.049 c