![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А в чем смысл? Что теперь с этим делать?
Написано же - "пример". То есть, "это" надо разобрать, понять, как работает, и прикинуть, как использовать для своих нужд.
Написано же - "пример". То есть, "это" надо разобрать, понять, как работает, и прикинуть, как использовать для своих нужд.
В чем собственно заключается эта "фабрика"? В том, что один объект может включать несколько полиморфных объекта другого класса?
Вот патерн сингельтон - это нечто, это действительно крутой финт, даже во сне не приснится. А в чем крутизна фабрики? Мне кажется это само собой разумеется и очевидно, что один объект может содержать другие объекты.
Посидел немного, вот так сделал:
Это фабрика или не фабрика?
В чем собственно заключается эта "фабрика"? В том, что один объект может включать несколько полиморфных объекта другого класса?
Вот патерн сингельтон - это нечто, это действительно крутой финт, даже во сне не приснится. А в чем крутизна фабрики? Мне кажется это само собой разумеется и очевидно, что один объект может содержать другие объекты.
Дмитрий, для профессионала конечно всё это очевидно. Но если начинающий программист смог в этом разобраться и считает, что может быть кому-то это поможет, то почему-бы не опубликовать это?
Вы пытались читать книги про эти паттерны? Такое впечатление, что эти книги выдали, что бы куча начинающих программистов на них застряла и самоликвидировалась. Потому-что там и опытным не все сразу очевидно. А когда разберешься, возникает вопрос - а стоило ли так трахать мозги? - Вот собственно о чем мой вопрос.
Я так до сих пор и не понял, что же называют фабрикой. Если фабрика это объект включающих другие полиморфные объекты - то, как видите, что такое фабрика, объясняется одним предложением.
А может быть фабрикой является исключительно вот этот класс:
Здесь тоже можно объяснить, что такое фабрика, одним предложением. А начнешь читать книги и статьи, ум за разум заходит.
А если посмотреть как общаются между собой эти адепты паттернов, прям избранные, на каком-то особом языке... не вздумай рядом подойти.
===
То, что кто-то одолел, разобрался и выложил - замечательно. Теперь как раз видим, что фактически это не то, что скрывалось за напыщенной оберткой.
Вы пытались читать книги про эти паттерны? Такое впечатление, что эти книги выдали, что бы куча начинающих программистов на них застряла и самоликвидировалась. Потому-что там и опытным не все сразу очевидно. А когда разберешься, возникает вопрос - а стоило ли так трахать мозги? - Вот собственно о чем мой вопрос.
То, что кто-то одолел, разобрался и выложил - замечательно. Теперь как раз видим, что фактически это не то, что скрывалось за напыщенной оберткой.
В свое время мне понравилась книга - Сергей Тепляков «Паттерны проектирования на платформе .NET» Питер, 2015 год
Как, зачем, когда, разные варианты и подходы в примерах к тому же с UML диаграммами.
Доступна по ссылке - https://cloud.mail.ru/public/2qT4/y2U22r9bU
Если кратко то есть три близких по названию но абсолютно разных по наполнению паттерна, и их все-таки не стоит путать:
- абстрактная фабрика (Abstract Factory) - порождающий патерн
- фабричный метод (Factory Method) - порождающий патерн
- шаблонный метод (Template Method) - паттерн поведения
Паттерны классная вещь, если не перегибать.
Например, один из модулей в проекте парсит входящие invoice счета и возможны 3 исторические версии счетов в различных форматах (txt, csv, ....) в общем 12 крайних вариантов.
Как кратко, в двух словах, описать архитектуру не вникая в ненужные детали реализаций?
Очень просто: используется "стратегия" для выбора нужного парсера под конкретный тип счета, а для обработки счета выбранным классом парсера применяется "шаблонный метод".
Вы пытались читать книги про эти паттерны? Такое впечатление, что эти книги выдали, что бы куча начинающих программистов на них застряла и самоликвидировалась. Потому-что там и опытным не все сразу очевидно. А когда разберешься, возникает вопрос - а стоило ли так трахать мозги? - Вот собственно о чем мой вопрос.
Я так до сих пор и не понял, что же называют фабрикой. Если фабрика это объект включающих другие полиморфные объекты - то, как видите, что такое фабрика, объясняется одним предложением.
Ну, не знаю о каких книгах речь, а на мой взгляд, паттерны обычно описываются на достаточно простых примерах, как раз чтобы не "трахать мозги".
Смысл паттернов в том, чтобы иметь под рукой ("в голове") способы решения типовых программистских задач (таких как создание объектов разного типа - что делает фабрика; она удобна, если объекты сборные или, например, имеют ограничения доступа). Можно назвать сбор паттернов аналогом библиотеки шаблонов STL в плоскости объектного дизайна, а не расчетного алгоритма. Самое интересное, что паттерны можно и не учить, а просто пытаться программировать - может быть постепенно, от раза к разу все более коротко, емко и эффективно с помощью рефакторинга - и в результате получить код, который - неким магическим образом, оказывается - соответствует одному из известных паттернов. В общем, паттерны потому так и называются, что как ни программируй, а некие общие приемы по-любому выкристаллизуются в коде. Кроме того, при работе в команде удобно обмениваться идеями с названиями паттернов. Это своего рода словесная блоксхема программы.
Но, я согласен, что в программировании иногда встречаются любители извратить концепцию до такой степени, что программирование как-будто используется ради самого программирования, вырождаясь в малопонятную тарабарщину. Тут каждый волен выбирать свой путь - пытаться подтянуть свой уровень до этих гуру (и в конце понять, гуру ли они на самом деле) или успешно реализовывать задуманное в соответствии с личными предпочтениями.
Я так до сих пор и не понял, что же называют фабрикой. Если фабрика это объект включающих другие полиморфные объекты - то, как видите, что такое фабрика, объясняется одним предложением.
А может быть фабрикой является исключительно вот этот класс:
Здесь тоже можно объяснить, что такое фабрика, одним предложением. А начнешь читать книги и статьи, ум за разум заходит.
Согласен, классическая фабрика - это просто класс, который создает другие объекты по оператору new.
Однако, я не согласен, что приведенный пример - бесполезен. Как раз для начинающих он очень даже хорошо иллюстрирует понятия наследования и (в меньшей степени) - полиморфизма.
По сути, это просто "драматизация идеи" - просто яркий (за счет забавных названий) пример, который легко и интересно разбирать начинающему. Не стоит от него ждать больше.
Согласен, классическая фабрика - это просто класс, который создает другие объекты по оператору new.
Однако, я не согласен, что приведенный пример - бесполезен. Как раз для начинающих он очень даже хорошо иллюстрирует понятия наследования и (в меньшей степени) - полиморфизма.
По сути, это просто "драматизация идеи" - просто яркий (за счет забавных названий) пример, который легко и интересно разбирать начинающему. Не стоит от него ждать больше.
Я не писал, что он бесполезен, даже не намекал и даже не думал так. Он полезен. Я намекал на то, что тема паттернов программирования излишне мистифицирована.