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

23
Законная «настоящая работа» в конструкторе?

Я работаю над дизайном, но продолжаю преодолевать препятствия. У меня есть определенный класс (ModelDef), который по сути является владельцем сложного дерева узлов, созданного путем анализа XML-схемы (например, DOM). Я хочу следовать хорошим принципам проектирования (SOLID) и гарантировать, что...

23
Можно ли классу использовать собственный публичный метод?

Задний план В настоящее время у меня есть ситуация, когда у меня есть объект, который передается и принимается устройством. Это сообщение имеет несколько конструкций, а именно: public void ReverseData() public void ScheduleTransmission() ScheduleTransmissionМетод необходимо вызвать ReverseDataметод...

23
Шаблон проектирования для проверки данных

Какой будет лучший шаблон проектирования для этой проблемы: У меня есть Объект А. Объект А может быть зарегистрирован или удален из базы данных в зависимости от запроса пользователя. Проверка данных выполняется перед регистрацией или удалением объекта. Существует ряд правил, которые необходимо...

23
Выберите дизайн кода или лень в мире банка

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

23
Почему не стало обычным делом использовать сеттеры в конструкторе?

Средства доступа и модификаторы (также известные как сеттеры и геттеры) полезны по трем основным причинам: Они ограничивают доступ к переменным. Например, переменная может быть доступна, но не может быть изменена. Они проверяют параметры. Они могут вызвать некоторые побочные эффекты. Университеты,...

23
Как другой популярный язык мог бы избежать использования фабричного шаблона при управлении такой же сложностью, как в Java / Java EE?

Фабричный шаблон (или, по крайней мере, использование FactoryFactory..) является предметом многих шуток, как здесь . Помимо наличия подробных и «креативных» имен, таких как RequestProcessorFactoryFactory.RequestProcessorFactory , есть ли что-то принципиально неправильное в фабричном шаблоне, если...

22
Является ли слабое соединение без вариантов использования анти-паттерном?

Слабое связывание для некоторых разработчиков является святым Граалем хорошо спроектированного программного обеспечения. Это, конечно, хорошо, когда он делает код более гибким перед лицом изменений, которые могут произойти в обозримом будущем, или избегает дублирования кода. С другой стороны,...

22
Как я могу продвигать использование шаблона Builder в моей команде?

Наша кодовая база устарела, и новые программисты, как и я, быстро учатся делать это так, как это делается для единообразия. Думая, что мы должны с чего-то начать, я взял на себя реорганизацию класса держателей данных как такового: Удалил методы установки и сделал все поля final(я беру "...

21
Является ли функциональное программирование жизнеспособной альтернативой шаблонам внедрения зависимостей?

Недавно я читал книгу под названием « Функциональное программирование на C #», и мне пришло в голову, что неизменяемая и не имеющая состояния природа функционального программирования обеспечивает результаты, аналогичные шаблонам внедрения зависимостей, и, возможно, даже лучший подход, особенно в...

21
Делают ли шаблоны дизайна подавление творчества

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

21
Как хранить цены, которые имеют даты вступления в силу?

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

21
Конструктор с множеством параметров в сравнении с шаблоном

Хорошо известно, что если в вашем классе есть конструктор с множеством параметров, скажем, больше 4, то это, скорее всего, запах кода . Вам нужно пересмотреть, удовлетворяет ли класс SRP . Но что если мы создадим объект, который зависит от 10 или более параметров, и в конечном итоге закончим...

21
В чем разница между контроллером в MVC и ViewModel в MVVM?

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

21
Как мне реализовать шаблон репозитория для сложных объектных моделей?

Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . Наша модель данных насчитывает почти 200 классов, которые можно разделить примерно на дюжину функциональных областей. Было бы неплохо использовать...

21
Как убедить моего босса (и других разработчиков) использовать / учитывать ненавязчивый JavaScript

Я довольно новичок в нашей команде develepors. Мне нужны веские аргументы и / или примеры «подводных камней», чтобы мой начальник наконец-то понял преимущества ненавязчивого JavaScript, чтобы он и остальная команда перестали делать такие вещи: <input type="button" class="bow-chicka-wow-wow"...

21
Обучение асинхронному программированию [закрыто]

Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 4 года назад . Асинхронное неблокирующее программирование, управляемое событиями, кажется всем...

21
Как избежать гигантских клеевых методов?

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

21
Карта функций против оператора switch

Я работаю над проектом, который обрабатывает запросы, и в запросе есть два компонента: команда и параметры. Обработчик для каждой команды очень прост (<10 строк, часто <5). Существует не менее 20 команд, и, скорее всего, их будет более 50. Я придумал пару решений: один большой переключатель /...

21
Как называется идиома, использующая цепочку методов для построения объекта?

Я часто использую шаблон, в котором я использую цепочку методов для настройки объекта, аналогичного шаблону Builderили Prototype, но не создаю новые объекты при каждом вызове метода, вместо этого изменяя исходный объект. Пример: new Menu().withItem("Eggs").withItem("Hash...