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

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

4
это способ называть функцию плохой практикой?
У меня есть следующий код: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } Я думаю, что таким образом я снимаю ответственность за знание …

6
Какое лучшее определение для Dependency Injection?
Каждый раз, когда кто-то приходит ко мне и просит меня концептуально определить Dependency Injection и объяснить реальные плюсы и минусы использования DI в разработке программного обеспечения. Признаюсь, у меня есть некоторые трудности с объяснением понятий DI. Каждый раз, когда мне нужно рассказать им историю о едином принципе ответственности, составе по …

4
Что такое «преждевременная абстракция»?
Я слышал, как фразу бросают вокруг, и для меня аргументы звучат совершенно безумно (извините, если я здесь играю, это не мое намерение), как правило, это звучит примерно так: Вы не хотите создавать абстракцию до того, как узнаете, каков общий случай, иначе (1) вы можете помещать в свои абстракции вещи, которые …

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

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

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

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

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

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

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

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

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

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

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

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

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