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

Шаблон проектирования - это общее многократно используемое решение часто встречающейся проблемы в разработке программного обеспечения.

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

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

1
Шаблон проектирования для преобразования объекта (Java)
Я не очень часто использую шаблоны проектирования, кроме случайной фабрики и MVC, и хочу больше их использовать. У меня под рукой конкретный случай, и я хотел бы узнать ваше мнение об использовании шаблонов проектирования в этом случае. В моем приложении мне приходится конвертировать объекты довольно часто в разных ситуациях. Возможно, …

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

5
Как убедить моего босса (и других разработчиков) использовать / учитывать ненавязчивый JavaScript
Я довольно новичок в нашей команде develepors. Мне нужны веские аргументы и / или примеры «подводных камней», чтобы мой начальник наконец-то понял преимущества ненавязчивого JavaScript, чтобы он и остальная команда перестали делать такие вещи: <input type="button" class="bow-chicka-wow-wow" onclick="send_some_ajax(); return false;" value="click me..." /> а также <script type="text/javascript"> function send_some_ajax() { …

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

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

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

4
У кого-нибудь есть конкретный пример использования Flyweight Pattern? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 2 года назад . Я изучал шаблоны проектирования и наткнулся на образец веса мухи. Я пытался …

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

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

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

5
Почему тип связан с его строителем?
Недавно я удалил свой Java- ответ на Code Review , который начался так: private Person(PersonBuilder builder) { Стоп. Красный флаг. PersonBuilder будет строить Person; это знает о Человеке. Класс Person не должен ничего знать о PersonBuilder - это просто неизменный тип. Вы создали круговую связь здесь, где A зависит от …

4
Заменяют ли именованные аргументы шаблон построителя?
При использовании языка, который поддерживает именованные и необязательные аргументы, шаблон компоновщика больше не имеет практического применения? Строитель: new Builder(requiredA, requiredB).setOptionalA("optional").Build(); Необязательные / именованные аргументы: new Object(requiredA, requiredB, optionalA: "optional");

5
Каковы преимущества внедрения зависимостей в тех случаях, когда почти всем нужен доступ к общей структуре данных?
Есть много причин, почему глобалы злы в ООП. Если число или размер объектов, нуждающихся в совместном использовании, слишком велик, чтобы их можно было эффективно передать в параметрах функции, обычно все рекомендуют внедрение зависимостей вместо глобального объекта. Однако в случае, когда почти каждый должен знать об определенной структуре данных, почему внедрение …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.