Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 13:16 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
Выкинуть и забыть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 13:46 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Ясно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2013, 16:50 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
Забавная техника - можно в рантайме переключать поведение задешево, не загромождая код тучей всяких if. В общем случае для этого не обязательно использовать namespace, обычно просто присваивают указатель функции. Ну и понятно, что имена функций не обязательно должны совпадать. Я такого рода технику обычно использую при реализации автоматов, когда в зависимости от ввода переключатся функция action (простейший пример - парсер файлов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2013, 17:53 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
Sash_xpЗабавная техника - можно в рантайме переключать поведение задешево, не загромождая код тучей всяких if. В общем случае для этого не обязательно использовать namespace, обычно просто присваивают указатель функции. Ну и понятно, что имена функций не обязательно должны совпадать. Я такого рода технику обычно использую при реализации автоматов, когда в зависимости от ввода переключатся функция action (простейший пример - парсер файлов). Чем это лучше чем полиморфизм или std::function<>? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2013, 18:18 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
полиморфизм или std::function?Чем это лучше чем полиморфизм или std::function<>? std::function<> - замена указателям на функции, и это лучше, чем использовать указатели, при условии что доступен компилятор C++11. С помощью полиморфизма можно, конечно, тот же трюк сделать - но более накладно - ненужные объекты создавать и т.п. Но опять же зависит от задачи. Бывает, что и полиморфизм удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2013, 18:42 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
scymaks, Ничего интересного. Тот же указатель на функцию, он же полиморфный вызов, только все ещё замаскировано namespace. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 08:44 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
А наркоманизированный паттернизированный мозг разве был против того же поведенческого паттерна "Стратегия"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 18:51 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
NekZ, Так это же и есть реализация паттерна стратегия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2013, 11:12 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
scymaksТак это же и есть реализация паттерна стратегия. Реализация "стратегии" не предусматривает доступа из клиентского кода через глобальные переменные к внутренностям библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2013, 11:17 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
В стратегии я бы объявил поле с типом класса поведения алгоритма, плюс сеттер для изменения в рантайме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2013, 12:22 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Так а кто заставляет-то лезть через глобальные переменные? Изайте Environment и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2013, 05:42 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
scymaks, Вот ни капли это не стратегия. Во-первых: использование процедурного подхода (ака указатели на функции) в коде C++, пытающимся инкапсулировать поведение, (как минимум!) подозрительно, в то время когда указатели на коллабельные объекты бороздят просторы адресного пространства. Во-вторых: стратегия может содержать несколько перегружаемых поведенческих методов. Сопровождать ваш код в таком случае будет очень сложно. В третьих: а что если понадобится хранить в экземпляре стратегии какие-либо данные? В вашем случае глобальными переменными это не решить. P.S. А как же чудеса полиморфизма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2013, 10:31 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
scymaksТак а кто заставляет-то лезть через глобальные переменные? Изайте Environment и всё. Вы про потоки, про рекурсию слышали? Одна функция ставит одно значение в глобальной переменной, другая - другое, и обе думают что они единственные кто меняет значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2013, 10:41 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Вот я где-то написал о том, что это можно использовать в многопоточной среде? Ну ни слова же об этом сказанно не было. Вот ни капли это не стратегия. Во-первых: использование процедурного подхода (ака указатели на функции) в коде C++, пытающимся инкапсулировать поведение, (как минимум!) подозрительно, в то время когда указатели на коллабельные объекты бороздят просторы адресного пространства. Во-вторых: стратегия может содержать несколько перегружаемых поведенческих методов. Сопровождать ваш код в таком случае будет очень сложно. В третьих: а что если понадобится хранить в экземпляре стратегии какие-либо данные? В вашем случае глобальными переменными это не решить. P.S. А как же чудеса полиморфизма? Ну вот опять. Ну вы начинаете ее рассматривать с точки зрения экспертного подхода. Я лишь привел идею, не более того. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2013, 13:45 |
|
||
|
Наркоманизация namespaces.
|
|||
|---|---|---|---|
|
#18+
scymaksВот я где-то написал о том, что это можно использовать в многопоточной среде? А я где то написал что эта проблема есть только в многопоточной среде? Та же самая проблема есть почти в любой программе, в которой больше одной функции. Именно поэтому у глобальных переменных есть четко ограниченная область применения, где без них нельзя обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2013, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=78&tid=2020233]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 307ms |
| total: | 466ms |

| 0 / 0 |
