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

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

6
Какой лучший способ избежать слишком большого количества if / else-if из следующего фрагмента кода?
Я пытаюсь написать сервлет, который выполняет задачу на основе значения "action", переданного в качестве входных данных. Вот образец которого public class SampleClass extends HttpServlet { public static void action1() throws Exception{ //Do some actions } public static void action2() throws Exception{ //Do some actions } //And goes on till action9 …

5
Согласно закону Деметры, разрешено ли классу возвращать одного из его членов?
У меня три вопроса относительно закона Деметры. Помимо классов, которые были специально назначены для возврата объектов - таких как классы фабрики и компоновщика - нормально ли, чтобы метод возвращал объект, например, объект, удерживаемый одним из свойств класса, или будет нарушать закон Деметры (1) ? И если он нарушает закон Деметры, …

2
Как пройти тестирование неинъекционного кода?
Итак, у меня есть следующий фрагмент кода, который используется во всей моей системе. В настоящее время мы пишем модульные тесты ретроспективно (лучше поздно, чем никогда не было моим аргументом), но я не понимаю, как это будет тестироваться? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter …

1
Могут ли доменные модели в базе данных быть устойчивым решением?
Я только начинал на новой работе в качестве разработчика базы данных для компании среднего размера, основанной на технологии Microsoft. Ранее я заметил, насколько практики отличаются от того, чему меня учили в школе в отношении лучших практик, шаблонов проектирования, тестирования и управления проектами. Больше всего меня беспокоит то, как наш основной …

3
Как привлечь внимание программиста в определенных условиях?
Давайте начнем с примера. Допустим, у меня есть метод, exportкоторый сильно зависит от схемы БД. И под «сильно зависит» я имею в виду, что я знаю, что добавление нового столбца в определенную таблицу часто (очень часто) приводит к изменению соответствующего exportметода (обычно вы также должны добавить новое поле к данным …

7
Есть ли шаблон для более «естественного» способа добавления предметов в коллекции? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Я думаю, что наиболее распространенным способом добавления чего-либо в коллекцию является использование какого-либо …

6
Опрос одного из аргументов в пользу внедрения зависимостей: почему сложно создать граф объектов?
Платформы внедрения зависимостей, такие как Google Guice, дают следующую мотивацию для их использования ( источник ): Чтобы построить объект, вы сначала строите его зависимости. Но для построения каждой зависимости вам нужны ее зависимости и так далее. Поэтому, когда вы строите объект, вам действительно нужно построить граф объектов. Создание графов объектов …

2
Должен ли я выставлять «вычисленное» значение как свойство или метод?
У меня есть класс C #, который представляет тип контента в системе управления веб-контентом. У нас есть поле, которое позволяет редактору веб-материалов вводить HTML-шаблон для отображения объекта. Он в основном использует синтаксис handlebars для подстановки значений свойств объекта в строку HTML: <h1>{{Title}}</h1><p>{{Message}}</p> С точки зрения дизайна класса, я должен представить …

2
Почему отдельный класс CommandHandler с Handle () вместо обработки метода в самой Command
У меня есть часть шаблона CQRS, реализованного с использованием S # arp Architecture, например: public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } …

4
Рельсы: Закон Путаницы Деметры
Я читаю книгу под названием Rails AntiPatterns, и они говорят об использовании делегирования, чтобы избежать нарушения закона Деметры. Вот их главный пример: Они считают, что вызывать что-то подобное в контроллере плохо (и я согласен) @street = @invoice.customer.address.street Их предлагаемое решение заключается в следующем: class Customer has_one :address belongs_to :invoice def …

3
Принцип инверсии зависимости: Как определить «политику высокого уровня» и «детализацию низкого уровня» для других людей?
Я пытаюсь объяснить принцип инверсии зависимостей моим (в основном младшим) коллегам. Как мы можем определить, какая из них является «политикой высокого уровня», а какая «низкоуровневой» в программном обеспечении? Например, если наше программное обеспечение автоматизирует рабочий процесс нескольких бизнес-приложений, почему мы говорим, что автоматизация рабочего процесса - это политика высокого уровня, …

3
Является ли использование юнит-тестов хорошей историей?
Итак, у меня есть модуль аутентификации, который я написал некоторое время назад. Теперь я вижу ошибки моего пути и пишу для него юнит-тесты. При написании юнит-тестов мне трудно придумывать хорошие имена и хорошие области для тестирования. Например, у меня есть такие вещи, как RequiresLogin_should_redirect_when_not_logged_in RequiresLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials Лично я думаю, что …

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

4
Как определить, правильно ли реализован Design Pattern?
Я успешно могу масштабировать все мои старые приложения, которые не использовали документированные шаблоны проектирования. Какой бы это ни была схема, я не знаю. В значительной степени я чувствовал необходимость использовать только простые концепции ООП. Концепция Design Patterns сложна и трудна для понимания. Когда реализовано, как определить, является ли реализация правильной, …

3
Рекомендовать шаблон проектирования / подход к выявлению / терпению / восстановлению после системных ошибок, обработке исключений (например, в Java, C ++, Perl, PHP)
Можете ли вы порекомендовать шаблон проектирования / подход к выявлению / переносу / восстановлению после системных ошибок, обработке исключений (Java, C ++, Perl, PHP)? О некоторых ошибках нужно сообщать. Некоторые ошибки могут быть обработаны внутри (повторной попыткой или несущественными (могут быть проигнорированы). Как вы структурируете код, чтобы поймать их? Но …

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