Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2012, 21:20   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нормально все ВОВАН13 пишет....
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.11.2012, 02:49   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Собственно, если я уже пишу непонятно и мои рассуждения считаются не особо конструктивными, добро пожаловать второе сообщение 209 голосов.
BOBAH13 вне форума Ответить с цитированием
Старый 17.11.2012, 10:07   #13
the_deer_one
Участник клуба
 
Аватар для the_deer_one
 
Регистрация: 04.04.2010
Сообщений: 1,554
По умолчанию

BOBAH13
У тебя замечательно конструктивные посты, и ты отлично всё растолковал про билдеры, и даже Пучков с тобой согласился.

Я про то, что построение твоих предложений на русском местами какое то совсем нерусское. Но это уже оффтоп.
the_deer_one вне форума Ответить с цитированием
Старый 18.11.2012, 23:00   #14
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Собственно, если я уже пишу непонятно и мои рассуждения считаются не особо конструктивными, добро пожаловать второе сообщение 209 голосов.
В очередной раз удивляюсь всем этим шаблонным учениям. Берут какой-то искусственный пример, придумывают искусственные проблемы и героически их решают способом, под который проблему и подогнали.
Понятно, что Telescoping Constructor Pattern (чёрт и такой паттерн оказывается есть зачем-то?) - это убого при количестве параметров эдак более 2 (почему вообще эта фигня не в антипаттернах вместе с синглтоном?). Да и при любом количестве параметров это некрасиво и ненужно. Тем более, что во многих языках есть значения параметров по умолчанию, чем по сути этот паттернт благополучно перекрывается.
Дальше ругают JavaBean Pattern (еще один, будь он неладен...) и опять есть за что.
А вот дальше "плавно" переходим к Builder'у. Почему не рассматривается промежуточный вариант между JavaBean и Builder?
Пусть PizzaParam - это обычная структура:
Код:
PizzaParam param = new Pizzaparam();
param.cheese = true;
param.pepperoni = true;
param.bacon = true;
Pizza pizza = new Pizza(12, param);
// или в шарпе можно это и как-то так по-моему записать
Pizza pizza = new Pizza(12, new PizzaParam(Cheese = true; Pepperoni = true; Bacon = true));
Дальше еще лучше:
Код:
Pizza pizza = new Pizza.Builder(12).cheese(true).pepperoni(true).bacon(true).build();
Эта запись называется очень понятной и удобной.
А вот так сразу и не понятно что есть 12. Про все эти true там в комментах так же кто-то отписался.
Моё видение мира предполагает такую запись в рамках данного паттерна:
Код:
Pizza pizza = new Pizza.Builder.createWithSize(12).addCheese().addPepperoni().addBacon().build();
Остаётся очень важная для меня деталь. Я могу быть уверен, что повар в итоге сыр раньше пепперони накрошит на тесто или как обычно колбаса с беконом будет под сыром? А ведь в случае с вышепредложенной мною struct никому и в голову не взбредет, что порядок указания сыра, пепперони и бекона важен.
Меня смущает, что столько людей согласилось с человеком, который вроде объясняет как нужно, а сам так лажает на искусственном примере и пропускает неудобные варианты решения (я всё про бедную структуру переживаю, наверно, просто ни под какой паттерн этот вариант решения не подходит и названия этому нет пока, хотя можно под это и data Transfer Object подогнать). Это очень странно и за версту несёт позёрством, модой и прочей гадостью.
ЗЫ. Я надеюсь, что эти примеры были не из рекомендуемой им книги.
ЗЫ2. Вот как человек может радеть за красоту и чистоту великого и могучего и при этом называть методы существительными?
ЗЫ3. Да, я зануда.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeGear C++ Builder 2007 Lite не может откомпилировать исходники C++ Builder 6 Ecosasha C++ Builder 2 22.11.2013 15:02
c++ builder CepBep Помощь студентам 0 07.07.2012 17:19
переезд из C++ Builder 6 в C++ Builder 2009 NadS Помощь студентам 2 18.03.2012 06:44
Синтаксис Delphi Builder --> C++ Builder KingBelt C++ Builder 2 28.11.2010 16:25
Перенести код из C++ Builder 5 в C++ Builder 2009 Kreadlling C++ Builder 2 13.09.2009 14:00