|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Забыл ещё добавить, как бы так сделать, чтобы можно было создание объекта инкапсулировать в одном месте, чтобы иметь точку расширения? И как бы так сделать, чтобы создание объекта можно было протестировать независимо от кода, который его создаёт? А как так сделать, чтобы создание объекта можно было использовать в любом количестве модулей, и не переписывать их, если логика создания меняется? Добавляются новые конкретные типы объекта? Ну и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 15:44 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttЕсли не очень сложно, можешь пояснить на основе чего сделаны такие выводы? На основе жизненного опыта. hVosttВторой вопрос, если ... Много слов, лень фантазировать код - я привык его писать. Давай конкретику на бумаге - твой пример, мой пример. По поводу бизнес правил и т.п., лучше их запускать не в момент создания. Ну и далее по тексту. hVosttМне кажется, я могу ещё раз повторить, вы просто не умеете его готовить Ты можешь много чего считать, суть от этого не меняется :) hVosttЗабыл ещё добавить, как бы так сделать, чтобы можно было создание объекта инкапсулировать в одном месте, чтобы иметь точку расширения? Зависимости. События. Наследование. hVosttИ как бы так сделать, чтобы создание объекта можно было протестировать независимо от кода, который его создаёт? Выше. hVosttА как так сделать, чтобы создание объекта можно было использовать в любом количестве модулей, и не переписывать их, если логика создания меняется? Добавляются новые конкретные типы объекта? Выше + типы объекта выноси в отдельные зависимости. hVosttНу и т.д. Ну да. Всё очень сложно, я прям вспотел. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 15:59 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиНа основе жизненного опыта. Ни о чём. СмузиМного слов, лень фантазировать код - я привык его писать. Давай конкретику на бумаге - твой пример, мой пример. По поводу бизнес правил и т.п., лучше их запускать не в момент создания. Ну и далее по тексту. Это конкретные задачи. Как ты будешь хоть одну задачу решать из приведённых мною, я так и не узнал. Я не прошу код, скажи как ты будешь решать, это совсем не сложно, при наличии знаний и опыта. Можно спрятаться за ленью и я пойму. Лень так лень, никто не заставляет. СмузиЗависимости. События. Наследование. Про зависимости я уже сказал. Мне не лень повториться. Как ты добудешь зависимости, которые тебе нужны для создания объекта, но их не должно быть у кода, которому понадобился создаваемый объект? Наследование это что, решает задачу создания объекта? Ну да, паттерн Строитель активно использует для реализации наследование. Насчёт событий, например, создание объекта должно обязательно порождать событие и оно должно попадать в шину событий, Директор (код, которому понадобился новый объект) об этом знать совсем не должен. Как будешь решать? СмузиВыше + типы объекта выноси в отдельные зависимости. Строитель легко может быть такой зависимостью. Или ты считаешь, что сам объект и должен быть зависимостью. И как, решает все описанные мною задачи? СмузиНу да. Всё очень сложно, я прям вспотел. Я просто не прочь обсудить, поделиться информацией и узнать что-то новое. Сейчас мне интересны аргументы, по которым ты отправил Строителя на свалку фреймворков, и почему по твоему мнению в коде приложений ему не место. Возможно это интересно не только мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 16:08 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Половину текста проскипал, лениво. Предлагаю по делу - пили код на флюенте, который я "якобы" не смогу сделать с помощью зависимостей и наследования. Я докажу обратное и ты пойдешь с миром пить чай дальше. По рукам? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 16:20 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиПоловину текста проскипал, лениво. Предлагаю по делу - пили код на флюенте, который я "якобы" не смогу сделать с помощью зависимостей и наследования. Я докажу обратное и ты пойдешь с миром пить чай дальше. По рукам? При чём тут вообще флюент? Ты несёшь чушь и не можешь внятно аргументировать ни одного своего слова, потому что опыта и знаний у тебя кот наплакал. Предлагаю и дальше уединяться со своим чаем и не лезть туда, в чём не разбираешься. По существу пока против шаблона тут никто ничего не сказал. Думаю и не скажет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 18:29 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttПри чём тут вообще флюент? Странный вопрос. Вот тут я писал, что "флюент упрощает разобраться в хаосе настроек". Ты ответил "Если не очень сложно, можешь пояснить на основе чего сделаны такие выводы?". hVosttТы несёшь чушь и не можешь внятно аргументировать ни одного своего слова, потому что опыта и знаний у тебя кот наплакал. Предлагаю и дальше уединяться со своим чаем и не лезть туда, в чём не разбираешься. Я тебе предложил на деле показать варианты реализаций. Но ты как-то это замолчал и обвинил меня в том, что я несу чушь, не умею аргументировать, прояснил про опыт и знания и определил не заниматься программированием. Не слишком ли много теоретического пафоса и детской шелухи? :) hVosttПо существу пока против шаблона тут никто ничего не сказал. Думаю и не скажет. По существу могу повторить второй раз, но не больше. Шаблон для специфических фреймворков-коробок с кучей разнотипных настроек. Тащить за уши шаблон в прикладной код не сулит никаких выгод, абсолютно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 20:18 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиСтранный вопрос. Вот тут я писал, что "флюент упрощает разобраться в хаосе настроек". Ты ответил "Если не очень сложно, можешь пояснить на основе чего сделаны такие выводы?". автор В качестве прикладного подхода несъедобно и, возможно, вредно. Почему не съедобно? Почему вредно? Посмотри на Kendo UI ASP.NET MVC, самый что ни на есть чистый прикладной код, там 90% кода это одни только билдеры. Раз ты не можешь аргументировать. То скажу за тебя, ты очень сильно не прав и конкретно заблуждаешься. В причины твоих заблуждений погружаться не будем. СмузиЯ тебе предложил на деле показать варианты реализаций. Но ты как-то это замолчал и обвинил меня в том, что я несу чушь, не умею аргументировать, прояснил про опыт и знания и определил не заниматься программированием. Не слишком ли много теоретического пафоса и детской шелухи? :) Вариант реализации Строителя тебе продемонстрировать? Их тех, что приведены в тонне книг, даже на википедии есть примеры, в опенсорсе тонны кода, я тебе их сюда копировать должен? С какой кстати, человек? Иди и смотри, читай, учись, а то получается ты вообще не в курсе что такое Строитель и как он реализуется и какие задачи решает. Наберёшься знаний, приходи. СмузиПо существу могу повторить второй раз, но не больше. Шаблон для специфических фреймворков-коробок с кучей разнотипных настроек. Тащить за уши шаблон в прикладной код не сулит никаких выгод, абсолютно. Ни о чём. Ни одного аргумента, что вполне ожидаемо. Вести дискуссию с пустобрехами мне увы, не интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 21:16 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVostt Вариант реализации Строителя тебе продемонстрировать? Их тех, что приведены в тонне книг, даже на википедии есть примеры, в опенсорсе тонны кода, я тебе их сюда копировать должен? Ссылки? Формулировка задачи + вариант решения. В STL есть строители? В опенсорце тонны г-на, как и в вики. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 22:00 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVostt, Kendo это и есть фреймворк / движок / компоненты, это не прикладной код :) P.S. Раздувательство щёк и бла-бла отскипано. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2016, 22:09 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиhVostt, Kendo это и есть фреймворк / движок / компоненты, это не прикладной код :) Если бы у тебя был опыт, или хотя бы немного серого вещества в ЧК, то ты прекрасно понимал, что в реальном проекте никакой фреймворк не покроет всех запросов прикладного кода, и понадобится делать свои компоненты поверх существующих. В случае с кендой используется его потенциал и пилится ещё куча билдеров по ходу разработки. СмузиP.S. Раздувательство щёк и бла-бла отскипано. Именно это я пока от тебя и увидел. Дуй щёки дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 07:24 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВСсылки? Формулировка задачи + вариант решения. В STL есть строители? В опенсорце тонны г-на, как и в вики. Ни о чём. Следующий. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 07:26 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ЕвгенийВВ STL есть строители? StringBuilder ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 07:29 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttЕвгенийВВ STL есть строители? StringBuilder Это конкретный билдер, где интерфейс билдера? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 09:24 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttЕсли бы у тебя был опыт, или хотя бы немного серого вещества в ЧК, то ты прекрасно понимал, что в реальном проекте никакой фреймворк не покроет всех запросов прикладного кода, и понадобится делать свои компоненты поверх существующих. В случае с кендой используется его потенциал и пилится ещё куча билдеров по ходу разработки. Очень голословные заявления для человека, который путает прикладной код и сторонние компоненты. Мне жаль, что приходится тратить своё время на таких людей. Но я не отчаиваюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 09:34 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ИзопропилЭто конкретный билдер, где интерфейс билдера? А зачем он здесь? Вопрос надо было ставить по-другому. Смотри в самое начало топика насчёт интерфейсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 10:48 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
СмузиОчень голословные заявления для человека, который путает прикладной код и сторонние компоненты. Мне жаль, что приходится тратить своё время на таких людей. Но я не отчаиваюсь :) Продолжай скучно фейлить. Не забывай надувать щёки, когда в очередной раз не можешь ничего выдавить по существу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 10:49 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttА зачем он здесь? при том, что с паттерном "Builder" у StringBuilder общего - часть названия. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 10:52 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Изопропил, вот ещё из популярных public sealed class SqlConnectionStringBuilder : DbConnectionStringBuilder Директор может читать конфиг и юзать DbConnectionStringBuilder, не зная конкретного типа строителя. В общем. Очень печально всё. Так и не увижу хоть самого плохонького и высосанного из пальца, но аргумента против обсуждаемого шаблона. Пожалуй включу вопрос по данному шаблону в список для интервью на собеседование ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 10:53 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttpublic sealed class SqlConnectionStringBuilder : DbConnectionStringBuilder уже ближе, если бы результат работы был чем-то посложнее, чем строка - пример стал бы настоящим. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 10:56 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ИзопропилhVosttА зачем он здесь? при том, что с паттерном "Builder" у StringBuilder общего - часть названия. Т.е. кроме названия, больше ничего общего? Это часть является конкретной реализацией Строителя, так как обобщённый интерфейс в данном случае не нужен. Однако, если бы очень сильно понадобилось, например, в .NET завелась бы поддержка каких-то других строк (UTF-32), в StringBuilder могли спокойно добавить интерфейс, без нарушения обратной совместимости и сделать StringBuilder32. Хотя для этих целей больше подходит TextWriter, но не суть. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 10:59 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
ИзопропилhVosttpublic sealed class SqlConnectionStringBuilder : DbConnectionStringBuilder уже ближе, если бы результат работы был чем-то посложнее, чем строка - пример стал бы настоящим. А в чём не настоящесть примера? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 11:00 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Изопропил, Ну ладно, давай чё-нить сложнее чем просто строка: UriBuilder ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 11:02 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
hVosttА в чём не настоящесть примера? The builder pattern is a design pattern that allows for the step-by-step creation of complex objects using the correct sequence of actions ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 11:06 |
|
Паттерн Builder. Применение в .NET
|
|||
---|---|---|---|
#18+
Изопропилуже ближе, если бы результат работы был чем-то посложнее, чем строка - пример стал бы настоящим. Я об этом с самого начала ему пытаюсь донести :) Слушает только самого себя. Добьется успехов в политике, но не в разработке. Пока в качестве примеров были... "прикладные" контролы от телерика ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2016, 11:07 |
|
|
start [/forum/topic.php?fid=20&startmsg=39347657&tid=1400221]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 464ms |
0 / 0 |