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

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


7
Самоисполняющаяся анонимная функция против прототипа
В Javascript есть несколько четко известных методов для создания и управления классами / пространствами имен в javascript. Мне любопытно, какие ситуации оправдывают использование одного метода против другого. Я хочу выбрать один и придерживаться его, двигаясь вперед. Я пишу корпоративный код, который поддерживается и совместно используется несколькими командами, и я хочу …

4
Почему команда разработчиков настаивает на том, что использование одного решения для нескольких проектов в Visual Studio «увеличивает сложность взаимозависимости»?
Я помогаю управлять внешней командой, которая начинает разрабатывать новые версии некоторых существующих продуктов. Исторически сложилось так, что эта команда всегда использовала модель одного проекта в одном решении для примерно 30 модулей в Visual Studio, которые объединяются для создания развертываемой сборки. Это отрицательно сказывается на надежности и качестве сборки, поскольку они …

4
Как избежать «менеджеров» в моем коде
Этот вопрос перенесен из Exchange Stack Exchange, так как на него можно ответить в Software Stack Exchange. Мигрировал 6 лет назад . В настоящее время я перепроектирую свою Entity System для C ++, и у меня много менеджеров. В моем дизайне у меня есть эти классы, чтобы связать мою библиотеку. …

4
Как вы обрабатываете несколько пользователей, редактирующих один и тот же фрагмент данных в веб-приложении?
Есть проект, над которым я работаю, который пытается создать веб-приложение, которое будет управлять списком задач между несколькими пользователями. Это основной список задач, чьи элементы задач распространяются авторизованным пользователем. Каждый пользователь имеет свою учетную запись для входа и просмотра назначенных ему задач; несколько пользователей могут иметь одну общую задачу. Я пытаюсь …

4
Что это значит, когда кто-то говорит «Инкапсулировать то, что меняется»?
Один из принципов ООП, с которыми я столкнулся, это: - Инкапсулируйте то, что меняется. Я понимаю, что буквальное значение фразы, то есть скрыть, что меняется. Тем не менее, я не знаю, как именно это будет способствовать улучшению дизайна. Может кто-нибудь объяснить это на хорошем примере?

4
Как мне добавить функциональность к объекту, который уже существует?
У меня есть интерфейс, который имеет определенное количество четко определенных функций. Скажем так: interface BakeryInterface { public function createCookies(); public function createIceCream(); } Это хорошо работает для большинства реализаций интерфейса, но в некоторых случаях мне нужно добавить некоторые новые функциональные возможности (например, возможно, в новый метод createBrownies()). Очевидный / наивный …

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

1
Модуль, требующий внедрения зависимостей в Javascript
В эти дни у меня возник вопрос: Идет ли то, как мы, Javascript, против всего, что считается хорошей практикой в ​​традиционной разработке программного обеспечения? У меня есть ряд вопросов / замечаний, связанных с этим утверждением, но для того, чтобы уважать формат StackExchange, будет лучше, если я разделю их на разные …

6
Шаблон итератора - почему важно не раскрывать внутреннее представление?
Я читаю C # Design Pattern Essentials . В настоящее время я читаю о шаблоне итератора. Я полностью понимаю, как реализовать, но я не понимаю важность или вижу вариант использования. В книге приведен пример, где кто-то должен получить список объектов. Они могли бы сделать это, выставив публичную собственность, такую ​​как …

3
Статическая фабрика против фабрики как синглтон
В некоторых моих кодах у меня есть статическая фабрика, похожая на эту: public class SomeFactory { // Static class private SomeFactory() {...} public static Foo createFoo() {...} public static Foo createFooerFoo() {...} } Во время обзора кода было предложено, чтобы это был одиночный и введенный. Итак, это должно выглядеть так: …

7
Шаблон для класса, который делает только одно
Допустим, у меня есть процедура, которая делает вещи : void doStuff(initalParams) { ... } Теперь я обнаружил, что «делать вещи» - довольно сложная операция. Процедура становится большой, я делю ее на несколько более мелких процедур, и вскоре я понимаю, что наличие некоторого состояния было бы полезно при выполнении каких-либо задач, …

5
Лучший способ загрузить настройки приложения
Простой способ сохранить настройки приложения Java представлен текстовым файлом с расширением «.properties», содержащим идентификатор каждого параметра, связанного с конкретным значением (это может быть число, строка, дата и т. Д.) , C # использует аналогичный подход, но текстовый файл должен называться «App.config». В обоих случаях в исходном коде вы должны инициализировать …

3
Разумно ли создавать приложения (не игры), используя архитектуру компонент-сущность-система?
Я знаю, что при создании приложений (собственных или веб-приложений), таких как приложения в Apple AppStore или магазине приложений Google Play, очень часто используется архитектура Model-View-Controller. Однако разумно ли также создавать приложения, использующие архитектуру Component-Entity-System, общую для игровых движков?

3
Понимание шаблона проектирования моста
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Я вообще не понимаю шаблон проектирования "мост". Я прошел через различные веб-сайты, но они не помогли. Кто-нибудь может помочь мне понять это?

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