Ваш вопрос не достаточно конкретный, чтобы дать солидный ответ. После обсуждения в комментариях ясно, что вы активно пытаетесь изучать шаблоны проектирования, поэтому вам может быть непонятно, как лучше всего задать вопрос. Я предоставляю это как ответ, поэтому у меня есть место для ввода.
Ресурсы
dofactory - я использую это как мой эталонный источник при поиске по шаблону, который соответствует моей потребности.
Head First Design Patterns - Я использовал эту книгу, чтобы получить хорошее представление о шаблонах дизайна и способах их использования. Учебные шаблоны проектирования были ключевым моментом для моего понимания развития. Он показывает вам, как по-настоящему использовать интерфейсы и абстракции для достижения общих проблем в разработке программного обеспечения.
Beginner Guide to Design Patterns - Хорошая статья, чтобы вы начали с шаблонов дизайна.
Javascript Design Patterns - (BONUS) Этот сайт был невероятным для изучения шаблонов дизайна javascript. Я включаю, чтобы проиллюстрировать пункт, который я делаю ниже, о поиске шаблонов проектирования для любого используемого вами языка.
При взгляде на dofactory вы видите три области, в которые попадают паттерны; Креативная, структурная, поведенческая. Когда вы ищете шаблон, знаете, чего вы пытаетесь достичь.
Несколько советов
- Не заставляйте шаблон, если он не подходит, естественно, проблемы.
- Не переусердствуйте над решением, пытаясь заставить шаблоны в каждой строке кода, который вы пишете, они полезны, но не всегда нужны.
- При необходимости используйте несколько шаблонов, это прекрасно «Хорошо», чтобы иметь несколько паттернов, играющих близко друг к другу, снова .. если это естественная подгонка.
- Изучите несколько общих паттернов, этот небольшой список является моим собственным, но поиск в Google откроет другие персональные списки часто используемых шаблонов;
- Стратегия
- [Abstract] Фабрика
- Singleton
- Команда
- декоратор
- наблюдатель
- ли искать шаблоны дизайна для любого языка вы пытаетесь узнать, это даст вы лучше понимаете, как лучше использовать язык. (см. бонус-ссылку выше)
- Распределите свои крылья после того, как вы получите достойное представление о шаблонах GoF и посмотрите на шаблоны корпоративного дизайна.
Надеюсь, этот ответ поможет вам найти путь к изучению шаблонов проектирования. Я знаю, что это точно не отвечает на ваш вопрос, но, надеюсь, это поможет вам понять немного лучше и позволить вам вернуться с более конкретным вопросом о шаблонах проектирования и использовании вашего кода.
Информации о вас недостаточно. Трудно понять контекст или цель объектов. IShape -> Аннотация Круг/Квадрат -> Бетон Красный/Синий Круг/Квадрат. Может быть одна настройка. Это позволит вам проходить любую фигуру вокруг, иметь общие реализации в вашей абстрактной модели и отдельные реализации на ваших бетонах. Но, не зная цели и ожидаемой функциональности, мы могли бы найти множество вариаций. Возможно, отредактируйте вопрос, чтобы быть более конкретным. – Tony
Да, я знаю, что будет много вариантов, так что вы можете выбрать только одну ситуацию, которая хороша для использования в первом дизайне и ситуации, которая хороша для использования второго дизайна?Поскольку я недавно изучаю шаблон дизайна, и я читал из книги, что в нормальной ситуации я должен избегать слишком много уровней во время проектирования классов, но я не уверен в причине, и я не могу снова найти этот параграф. \ – sflee
Сокращение числа ненужные уровни абстракций правильны, но все зависит от того, чего вы пытаетесь достичь. Проверьте этот сайт на http://www.dofactory.com/net/design-patterns, у них есть хорошие объяснения и примеры. Также ознакомьтесь с книгой «Head First Design Patterns», которая помогает понять шаблоны. Самый важный совет, который я могу дать вам о шаблонах, - это «Не заставляйте шаблон, если он не подходит». Имейте представление о том, чего вы пытаетесь достичь, тогда вы можете перейти на сайт doFactory и посмотреть, есть ли образец, который поможет достичь вашей цели. – Tony