Обсуждение статьи "Шаблоны проектирования в программировании на MQL5 (Часть I): Порождающие шаблоны (Creational Patterns)"
Думал, переводчики немного накосячили в подразделе про абстрактную фабрику, ан нет - сам автор.
Какую проблему проектирования он решает?
Итак, мы можем использовать этот шаблон когда:
- ТУТ ПУСТО
- Нужна независимая система.
- Нужна сконфигурированная система с одним из многих семейств продуктов.
- Нужно использовать семейство связанных продуктов вместе в соответствии с дизайном и обеспечить соблюдение этого ограничения.
- Нужно раскрыть только интерфейсы предоставленного класса, а не их реализацию.
Примеры использования такого Абстрактной фабрики:
В англ.исходнике так:
What design problem does it solve?
So, we can use this pattern in the case of the following:
- We need an independent system.
- We need a configured system with one of many families of products.
- We need to use a family of related product objects together as per its design and enforce this constraint.
- We need to reveal just interfaces of the provided class, not their implementation.
Ещё немного поворчу...
Чтобы быть точным в терминологии, буду попутно смотреть англ. исходник статьи. Итак, про каждый шаблон автор пишет "How we can use it in MQL5?" (с англ. "Как его использовать в MQL5?" ). Тут стоит отметить, что MQL5 - это прикладной специализированный язык. И что же? Действительно узнаем из материала, как можно использовать шаблоны в MQL5? Нет! Видим, что просто идёт реализация шаблона на MQL5. Имхо, раз это шаблон, стоило бы сначала описать его на псевдокоде, а только потом на MQL5. Ну и в идеале интересно посмотреть на практические примеры использования шаблонов проектирования в MQL5. Не знаю, может я забегаю впереди паровоза, и автор планирует рассматривать каждый шаблон в отдельном опусе. Но пока имеем то, что имеем...
- www.mql5.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Шаблоны проектирования в программировании на MQL5 (Часть I): Порождающие шаблоны (Creational Patterns):
Существуют методы, которые можно использовать для решения типовых задач. Поняв один раз, как использовать эти методы, можно затем эффективно писать программы и применять концепцию DRY ("Не повторяйся"). В этом контексте очень полезными оказываются шаблоны проектирования, которые могут давать решения хорошо описанных и повторяющихся проблем.
Классы порождающего шаблона используют концепцию наследования, то есть они могут наследовать свойства и методы от других классов. Это позволяет изменять поведение класса, превращая его в экземпляр (объект), который соответствует определенным требованиям. Объект порождающего шаблона делегирует задачу создания нового экземпляра (инстанциирования) другому объекту. Когда в программе акцент делается на композиции объектов, а не на наследовании классов, порождающие шаблоны становятся более важными.
Можно сказать, что у таких шаблонов есть две повторяющиеся темы:
Порождающие паттерны дают гибкость в плане того, что создается, кем, как и когда.
Они также позволяют абстрагировать процесс инстанциирования, поскольку позволяют создавать объекты, не повторяя одну и ту же реализацию. Все это делает код более гибким и простым.
Автор: Mohamed Abdelmaaboud