Вопросы с тегом «design-patterns»

10
Является ли наследование контекста, как показано в примере с утилитой Head First Design Patterns, не относящимся к шаблону стратегии?

В Head First Design Patterns он учит шаблону стратегии , используя пример Duck, где различным подклассам Duck может быть назначено определенное поведение во время выполнения. Насколько я понимаю, целью паттерна стратегии является изменение поведения одного объекта во время выполнения, но они...

10
Где проверить правила модели домена, которые зависят от содержимого базы данных?

Я работаю над системой, которая позволяет администраторам определять формы, содержащие поля. Затем определенные формы используются для ввода данных в систему. Иногда формы заполняются человеком через графический интерфейс, иногда форма заполняется на основе значений, сообщаемых другой системой. Для...

10
Какой шаблон дизайна больше подходит для регистрации?

Я должен регистрировать некоторые события в программе, но, насколько я знаю, было бы лучше оставить код регистрации вне программы, потому что это не касается реальной функциональности программы. Можете ли вы сказать мне, если я должен полностью исключить его из кода и использовать только...

10
Сколько усилий я должен инвестировать в создание слабосвязанных конструкций?

В настоящее время я изучаю шаблоны проектирования. Я думаю, что большинство людей согласится с тем, что эти шаблоны являются отличными инструментами, но их следует использовать с умеренностью, а не как ответ на все вопросы. Их чрезмерное использование слишком усложнит приложение с небольшой...

10
В хранилище или не в хранилище

Когда я впервые узнал о Domain Driven Design, меня также познакомили с репозиторием и шаблонами рабочих единиц, которые когда-то казались первоклассными для крутых ребят, которые бросали SQL-запросы, например, пещерные люди, в базы данных. Чем глубже я углубился в эту тему, тем больше я узнал, что...

10
Использование пакетов (драгоценных камней, яиц и т. Д.) Для создания разделенных архитектур

Основная проблема Видя хорошую поддержку, которую оказывают большинство современных программных платформ для управления пакетами (думаю gem, npmи pipт. Д.), Имеет ли смысл проектировать приложение или систему, состоящую из пакетов, разработанных внутри компании, чтобы продвигать и создавать...

10
Лучшие практики для реализации MVVM и MVC в Delphi Pascal

Я программист на Delphi Pascal, я использую последнюю версию Embarcadero Delphi XE, и я хотел бы воспользоваться преимуществами шаблонов проектирования, таких как контроллер представления модели и представление представления модели. Тем не менее, в Интернете, кажется, не так много о лучших методах...

10
Абстрактное свойство в базовом классе, чтобы заставить программиста определить его

Я кодирую с шаблоном состояния для встроенного устройства. У меня есть базовый / абстрактный класс, называемый State, и затем каждый дискретный (конкретный) класс состояний реализует абстрактный State State. В государственном классе у меня есть несколько абстрактных методов. Если я не реализую...

10
Существует ли шаблон проектирования для управления глубокими отношениями «многие ко многим»?

У меня проблемы с определением шаблона данных, с которым я столкнулся, работая над несколькими приложениями. Это состоит из: Тип объекта, который состоит из множества объектов. Второй тип объекта, где каждый экземпляр имеет «много» первого объекта И каждый из подобъектов первого объекта является...

10
Уменьшение сложности класса

Я посмотрел на некоторые ответы и искал в Google, но я не смог найти ничего полезного (то есть, это не будет иметь неловких побочных эффектов). Моя абстрактная проблема в том, что у меня есть объект и мне нужно выполнить длинную последовательность операций над ним; Я думаю об этом как о сборочной...

10
Избегайте конструкторов со многими аргументами

Так что у меня есть фабрика, которая создает объекты разных классов. Все возможные классы происходят от абстрактного предка. Фабрика имеет файл конфигурации (синтаксис JSON) и решает, какой класс создать, в зависимости от конфигурации пользователя. Чтобы добиться этого, фабрика использует boost ::...

10
Генерация Java-классов с параметрами значения времени компиляции

Рассмотрим ситуацию, когда класс реализует одно и то же базовое поведение, методы и так далее, но для разных целей может существовать несколько разных версий этого класса. В моем конкретном случае у меня есть вектор (геометрический вектор, а не список), и этот вектор может применяться к любому...

10
Использование интерфейсов для слабосвязанного кода

Фон У меня есть проект, который зависит от использования определенного типа аппаратного устройства, хотя на самом деле не имеет значения, кто делает это аппаратное устройство, если оно делает то, что мне нужно. При этом даже два устройства, которые должны делать одно и то же, будут иметь различия,...

10
Java: Как реализовать пошаговый конструктор, для которого порядок установки не имеет значения?

Изменить: я хотел бы отметить, что этот вопрос описывает теоретическую проблему, и я знаю, что я могу использовать аргументы конструктора для обязательных параметров, или вызвать исключение времени выполнения, если API используется неправильно. Однако я ищу решение, которое не требует аргументов...

10
Использование разных шаблонов для похожих функций

Я единственный разработчик проекта, который, как и любой программный проект, может быть взят кем-то другим в будущем. Допустим, я использовал шаблон X для реализации функции A. После разработки и доработки функции я понимаю, что могу реализовать ту же функцию, используя шаблон Y, о котором я только...

10
Как провести рефакторинг приложения с несколькими вариантами переключения?

У меня есть приложение, которое принимает целое число в качестве ввода и на основе ввода вызывает статические методы различных классов. Каждый раз, когда добавляется новый номер, нам нужно добавить еще один случай и вызвать другой статический метод другого класса. Теперь в коммутаторе 50 дел, и...

10
Можно ли когда-нибудь нарушать LSP?

Я занимаюсь этим вопросом , но переключаюсь с кода на принцип. Исходя из моего понимания принципа подстановки Лискова (LSP), какие бы методы ни находились в моем базовом классе, они должны быть реализованы в моем подклассе, и, согласно этой странице, если вы переопределяете метод в базовом классе и...

10
Как именно компилятор восстанавливается после ошибки типа?

Я прочитал несколько статей, статей и раздел 4.1.4, глава 4 « Компиляторы: принципы, методы и инструменты» (2-е издание) (он же «Книга Дракона»), в которых все обсуждается тема исправления синтаксических ошибок компилятора. Однако, после экспериментов с несколькими современными компиляторами, я...

10
Как избежать бесконечно повторяющихся одинаково неоптимальных проектов?

Поэтому, вероятно, как и многие, я часто сталкиваюсь с головными болями, связанными с проблемами проектирования, в которых, например, есть какой-то шаблон / подход к проектированию, который, кажется, интуитивно подходит к проблеме и имеет желаемые преимущества. Очень часто есть некоторая оговорка,...

10
Архитектура системы оповещения

Я хотел бы создать систему, которая обрабатывает предупреждающие сообщения от различных программ и может обрабатывать эти оповещения для потребителей, использующих новейшие технологии, по электронной почте. Все это будет содержаться в одной внутренней сети. Я думаю, что я хочу, чтобы базовая...