Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тащусь от Qt
|
|||
|---|---|---|---|
|
#18+
Интеграторвот один из возможных вариантов Хм. Понятно :) Комментарии: 1) Если честно, я бы не назвал это решение "Через функторы это разруливается естественным способом" (c) Конструирование прокси-объекта - прием нормальный, но "естественным" я бы назвал решение именно через функтор как таковой, решение, опирающееся на идею функтора. Здесь функтор играет сугубо вспомогательную роль; любая сущность, которая умеет вызвать функцию по указателю, но не является функтором, справится ничуть не хуже. Что именно это за сущность - предлагаю не уходить в абсолютно теоретические обсуждения. Просто "математически": либо все на свете является функтором, либо примененный аналогично не-функтор справится ничуть не хуже. 2) Далее - придирка к самому "естественно". Я соглашусь, что решение выполнено аккуратно, и - не готов обсуждать, но не удивлюсь, если для конкретной реализации компилятора C++ оно имеет весомые преимущества. Но вариант с inner объектами - все внутри одного класса - мне представляется именно что "естественным" для решения задачи "несколько внутри одного", нежели поддержка вспомогательного списка вспомогательных объектов, "обманывающих" кнопку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 11:10 |
|
||
|
Тащусь от Qt
|
|||
|---|---|---|---|
|
#18+
softwarer Интеграторвот один из возможных вариантов Хм. Понятно :) Комментарии: 1) Если честно, я бы не назвал это решение "Через функторы это разруливается естественным способом" (c) Конструирование прокси-объекта - прием нормальный, но "естественным" я бы назвал решение именно через функтор как таковой, решение, опирающееся на идею функтора. Здесь функтор играет сугубо вспомогательную роль; любая сущность, которая умеет вызвать функцию по указателю, но не является функтором, справится ничуть не хуже. Что именно это за сущность - предлагаю не уходить в абсолютно теоретические обсуждения. Просто "математически": либо все на свете является функтором, либо примененный аналогично не-функтор справится ничуть не хуже. 2) Далее - придирка к самому "естественно". Я соглашусь, что решение выполнено аккуратно, и - не готов обсуждать, но не удивлюсь, если для конкретной реализации компилятора C++ оно имеет весомые преимущества. Но вариант с inner объектами - все внутри одного класса - мне представляется именно что "естественным" для решения задачи "несколько внутри одного", нежели поддержка вспомогательного списка вспомогательных объектов, "обманывающих" кнопку. Согласен, что пример не самый лучший для демонстрации функторов. Хотлось максимально приблизиться к тому что цитировалось на Java. Конечно более интересноым было бы решение полностью на шаблонах. Если эта тема интересна, можно продолжить обсуждение ;) Код будет правда менее "рантаймным", но с доруго стороны часто это и не нужно ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2005, 11:45 |
|
||
|
Тащусь от Qt
|
|||
|---|---|---|---|
|
#18+
Всё таки не удержался привести ещё один пример функторами - правда у же не самописными ;) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 11:40 |
|
||
|
Тащусь от Qt
|
|||
|---|---|---|---|
|
#18+
ИнтеграторВсё таки не удержался привести ещё один пример функторами - правда у же не самописными ;) Тем не менее, это ровно такое же конструирование вспомогательных объектов. По-прежнему буду утверждать, что такое решение менее "естественно", чем явная реализация того же самого. Позволю себе усложнить задачу - требуется еще и переключать обработчики во время жизни объекта (в зависимости от ситуации присваивать тот или другой вызов). Тогда скрытое создание объектов тут же обернется против программиста. Давайте забудем, что в яву вроде как добавляют шаблоны. Чем этот код принципиально отличается от Код: plaintext 1. 2. Лично я - считаю такое плохим тоном, но объективности ради - делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 14:08 |
|
||
|
Тащусь от Qt
|
|||
|---|---|---|---|
|
#18+
softwarer ИнтеграторВсё таки не удержался привести ещё один пример функторами - правда у же не самописными ;) Тем не менее, это ровно такое же конструирование вспомогательных объектов. По-прежнему буду утверждать, что такое решение менее "естественно", чем явная реализация того же самого. Позволю себе усложнить задачу - требуется еще и переключать обработчики во время жизни объекта (в зависимости от ситуации присваивать тот или другой вызов). Тогда скрытое создание объектов тут же обернется против программиста. Честно говоря не понимаю в чём вы видите проблему. Приведите пожалуйста соответвующий код, причём наставиваю на С++ - в Java есть свои фичи и вести разговор по-моему конструктивнее если конкретиризоваться на одном синтаксисе ;) Давайте забудем, что в яву вроде как добавляют шаблоны. Чем этот код принципиально отличается от Код: plaintext 1. 2. Лично я - считаю такое плохим тоном, но объективности ради - делается. Принципиально всё сводится к одному и тому же но симантически код с функторами предельно понятен - любому вменяему Сишнику сразу очевидно что делается, а невнимяемый думаю догадается по крайней мере до смысла конструкции ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 14:17 |
|
||
|
Тащусь от Qt
|
|||
|---|---|---|---|
|
#18+
Кстати маленькое дополнение: Почему вас не смущает код void func(int nVal) { // ... } int main() { void (*fn)(int); fn = func; // .... } и смущает что создаются какие-то дополнительные объекты если вместо указателя на функию применяются функторы ? Может стоит посмотреть на функуторы просто как на продвинутые указатели ;) ? Я не хочу спорить что kecit - интерфейсы или функторы, т.к. это разные вещи и в каждом случае отдельно решается что удобнее и гибче... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2005, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33076478&tid=1347658]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 331ms |

| 0 / 0 |
