Здравствуйте, stump, Вы писали:
S>AndrewVK делает исключение, что в случае когда важна производительность, можно поступится правилом и перенести функцию в класс чтобы она смогла работать с приватными данными.
Это не исключение. Если функция должна работать с приватными данными, неважно по какой причине, значит функцию вынести не получится. Все в точном соответствии с предложенным принципом.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Это не исключение. Если функция должна работать с приватными данными, неважно по какой причине, значит функцию вынести не получится. Все в точном соответствии с предложенным принципом.
Крайне несостоянтельный у тебя получился ответ, ведь можно сказать, что функция должна работать с приватными данными, потому что все другие функции класса работают с приватными данными. Это, Андрей, не что-нибудь, а логика! Была проведена аналогия! Это такой метод логического мышления.
Здравствуйте, adontz, Вы писали:
A>Крайне несостоянтельный у тебя получился ответ, ведь можно сказать, что функция должна работать с приватными данными, потому что все другие функции класса работают с приватными данными.
Нельзя.
A> Это, Андрей, не что-нибудь, а логика!
Нет, на логику это совсем не похоже.
A> Была проведена аналогия! Это такой метод логического мышления.
Ну если это твой метод логического мышления, тогда все понятно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
A>> Это, Андрей, не что-нибудь, а логика! AVK>Нет, на логику это совсем не похоже.
На самом деле это очень даже логика, просто неуместная. Ничего, скоро ты тоже научишься различать.
A>> Была проведена аналогия! Это такой метод логического мышления. AVK>Ну если это твой метод логического мышления, тогда все понятно.
Нет, это не мой метод, это шутка. Я специально поставил три смайлика для людей без чувства юмора чтобы и им было понятно. Видимо, надо было поставить пять. В следующий раз так и поступлю. А может поэксперементировать с чётными числами, что думаешь?
На основной вопрос "Кто и как пределяет это самое "должна"?" есть что ответить или опять к деталям будешь придираться?
Здравствуйте, adontz, Вы писали:
A>На самом деле это очень даже логика, просто неуместная. Ничего, скоро ты тоже научишься различать.
Не, не научусь.
AVK>>Ну если это твой метод логического мышления, тогда все понятно.
A>Нет, это не мой метод, это шутка. Я специально поставил три смайлика для людей без чувства юмора чтобы и им было понятно. Видимо, надо было поставить пять. В следующий раз так и поступлю. А может поэксперементировать с чётными числами, что думаешь?
Лучше, если уж отметил завершение рабочей недели, не пиши в форум.
... << RSDN@Home 1.2.0 alpha 4 rev. 1095 on Windows Vista 6.0.6001.65536>>
Здравствуйте, AndrewVK, Вы писали:
>> Если функция должна работать с приватными данными, неважно по какой причине, значит функцию вынести не получится. Все в точном соответствии с предложенным принципом.
Видимо у тебя проблемы со зрением и ты не разглядел мой вопрос. Попробуем иначе.
Здравствуйте, adontz, Вы писали:
A>Я так понял, ты согласен с тезисом, что LeftSubstring и RightSubstring,
Я уже тебе говорил, что ты не умеешь читать. .
Ты выдвинул тезис, что у меня железная логика и на это утверждение мне совершенно нечего возразить.. =)
A>Ты неоднократно утверждал, что если не выделять методы в хелперы, то будет больше багов.
Утверждал и даже объяснял почему, не однократно.
A> Тебя неоднократно и не только я просили привести факты подтверждающие эту теорию.
Почитай топик, там все есть.. =)
A>То есть сам указать не можешь. Ч.Т.Д.
Я уже указал, и не однократно. Я что, для каждого ленивого должен заново все повторять?
Здравствуйте, stump, Вы писали:
S>Приехали. Формулировка не влияет на суть. Видимо по тому что сути нет никакой.
Опять хамить начинаешь? Здравый смысл должен был подсказать, что одно и то же утверждение можно сформулировать по разному, и суть утверждения от этого не изменится.
S>Заметь, ведь никто не спорит с тобой о том, что функции работающие с публичным контрактом класса можно выносить за пределы класса.
Я уже ничему не удивлюсь.
S> Но почему это надо делать всегда, ты толком объяснить не можешь.
Да куда уж толковей-то?! Я потратил кучу времени, приводя и теоретические выкладки и различные сценарии и поясняя, почему в данном конкретном случае лучше выносить — не читал? Или что-то было не понятно? Тогда надо было просто спросить, я бы объяснил.
S>Тот же Мейерс делает исключения, для случая когда необходимо виртуальное поведение, и для целого ряда случаев специфических для C++.
В том-то и дело, что для C++, для C# вы так и не смогли привести ни одного убедительного сценария.
S>AndrewVK делает исключение, что в случае когда важна производительность, можно поступится правилом и перенести функцию в класс чтобы она смогла работать с приватными данными.
Ты так до сих пор и не удосужился понять, как работает правило? О чем мы тут тогда вообще разговариваем?
Так. Еще раз. Просто чтобы меня опять не обвинили в том, что я ухожу от разговора. Все построено очень просто. Дизайн функции делается сначала, правило не диктует — должна функция пользоваться приватными переменными или нет. Правило лишь определяет где ей находиться, после того как ее спроектировали. Таким образом, это не исключение. Это понятно?
S>Другие коллеги справедливо замечают, что в большинстве используемых библиотек рассматриваемое правило не соблюдается, и находят этому различные объяснения.
"Большинство" — это FCL? Объяснение тоже было одно, так что не надо ненужных гипербол.
Кроме того, во-первых, кривой дизайн конкретной библиотеки не означает, что и все остальные надо так же уродовать, а во вторых, есть масса обратных примеров.
S>Но ты продолжаешь упроствовать в этом своем "всегда",
Упорствовать продолжаете вы. Причем я уже даже не понимаю в чем. У меня складывается очень четкое ощущение, что у вас уже чисто принципиальное желание, поймать меня уже хоть на чем-нибудь.
S>теперь уже даже не утруждаясь аргументировать свою позицию
Сколько можно выдвигать новые и повторять старые аргументы, пытаясь построить их так чтобы дошло, если их просто игнорируют? Аргументов было больше чем достаточно.
Вынужден констатировать, что и с упертостью борьбу я так же проиграл, мне уже стало не интересно.
По началу было, конечно, забавно ловить тебя на неуклюжих попытках интерпретировать все в свою пользу (чего, честно говоря не ожидал), но потом стало утомлять.
Yess!! Черт возьми, когда появляется персональный клоун, это, пожалуй, действительно слава.
A>Ah, the uniformity of it all! A>Согласованность во всём!
Ром, ты здесь правда иронию не уловил или тебя просто что-то вштырило? =)
A>Собственно далее, Мейерс расставляет все точки над i, полностью превознося синстаксическую согласованность над инкапсуляцией: "People just look up which syntax is appropriate for the functions they want to call, then they call them".
Ром, отсыпь пожалуйста, я тоже так хочу.. )
У меня просто не получается настолько изменить сознание, чтобы фразу о том, что людям пофиг как вызвается функция, интерпретировать как пропаганду синтаксической согласованности.. =)
Это у вас там что-то местное?
Здравствуйте, adontz, Вы писали:
A>Опять переврал,
Конкретно, что именно я переврал? Вот можешь прям взять мой текст, взять оригинал и точно указать, где и что я "переврал", по сути, конечно, на буквальный перевод я не претендую.
A>специально для тебя пришлось найти и перевести текст полностью.
На пользу тебе это, судя по всему, не пошло.
Здравствуйте, IB, Вы писали:
IB>Да куда уж толковей-то?! Я потратил кучу времени, приводя и теоретические выкладки и различные сценарии и поясняя, почему в данном конкретном случае лучше выносить — не читал? Или что-то было не понятно? Тогда надо было просто спросить, я бы объяснил.
Ключевое слово выделено. Практики от тебя не было, ты на каждый конкретный вопрос только отвечаешь "я уже писал, вы не умеете читать".
IB>"Большинство" — это FCL? Объяснение тоже было одно, так что не надо ненужных гипербол. IB>Кроме того, во-первых, кривой дизайн конкретной библиотеки не означает, что и все остальные надо так же уродовать, а во вторых, есть масса обратных примеров.
Ты так и не объяснил в чем же такой кривой FCL и конкретно, например, класс String. Да, давай напиши что ты уже писал, конкретики от тебя не будет никогда.
Здравствуйте, IB, Вы писали:
IB>Ром, отсыпь пожалуйста, я тоже так хочу.. )
Лучше ты отсыпь, наверное тогда тоже будут глюки якобы всем всё конкретно объяснил, а они не умеют читать.
Здравствуйте, MozgC, Вы писали:
MC>Практики от тебя не было, ты на каждый конкретный вопрос только отвечаешь "я уже писал, вы не умеете читать".
На каждый действительно конкретный вопрос, был дан конкретный ответ. Я человек ленивый, и повторять дважды мне совершенно не интересно, особенно для товарищей, которые даже не читают — не вижу смысла.
MC>Ты так и не объяснил в чем же такой кривой FCL и конкретно, например, класс String.
Если ты не в состоянии понять, что, скажем, пример с классом Rectangle ничем не отличается от примера с классом String, то тебе уже ничто не поможет. Тем более не вижу смысла тратить усилия.
А то в библиотек много, классов еще больше — ты мне будешь приплачивать за подробное объяснение по каждому?
MC>Да, давай напиши что ты уже писал, конкретики от тебя не будет никогда.
My favorite:
- Иногда письма не доходят.
— Да, бывалыча пишешь письмо, пишешь, получаешь ответ и понимаешь — не дошло письмо, не дошло..."
Здравствуйте, MozgC, Вы писали:
MC>Лучше ты отсыпь, наверное тогда тоже будут глюки якобы всем всё конкретно объяснил, а они не умеют читать.
Нет, вот твоя трава мне не нравится, она тупая, занудная и на зрение влияет.
Здравствуйте, Cyberax, Вы писали:
C>Кстати, а кто автор этого высказывания? Я где-то это видел (в ФИДО?) но не могу вспомнить.
Да, это было в ФИДО в humor.filtered =)
Автора, увы, не помню, хотя если покопаться в архивах, возможно получится найти..
Здравствуйте, IB, Вы писали:
IB>Здравствуйте, MozgC, Вы писали:
MC>>Лучше ты отсыпь, наверное тогда тоже будут глюки якобы всем всё конкретно объяснил, а они не умеют читать. IB>Нет, вот твоя трава мне не нравится, она тупая, занудная и на зрение влияет.
Я тебе не предлагал, да у меня и нет. Ты опять тупишь и не в тему отвечаешь.
Предлагаю рассмотреть имплементацию класса String для работы строк .
Во первых и пользы будет больше и конкретики и может понимания.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[21]: Куда девать ф-ции внешние для класса
От:
Аноним
Дата:
26.07.08 18:48
Оценка:
Давайте вернемся к примеру о котором написал adontz. Есть наш класс String. У него есть методы LeftSubstring() и RightSubstring(). LeftSubstring() по правилу Бодягина оставлен в классе, т.к. использует внутренние данные класса, а метод RightSubstring() вынесен во внешний сервис.
class String
{
public String LeftSubstring(int symbolCount);
}
class StringService
{
public static String RightSubstring(String value, int symbolCount);
}
По правилу Бодягина это правильно и нормально. Правильно ли я в данном случае применил правило или вы хотите что-то уточнить?