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

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

4
Когда использовать шаблон хранилища
Недавно я прочитал, что не рекомендуется использовать шаблон хранилища в сочетании с ORM. Насколько я понимаю, это потому, что абстракция, которую они предоставляют для базы данных SQL, слишком неплотна, чтобы сдерживать шаблон. У меня есть пара вопросов по этому поводу: Что вы делаете, если хотите отключить ORM? У вас будет …

5
Ориентируется ли объект архитектуры Entity Component System по определению?
Является ли архитектура Entity System Component ориентированный объект, по определению? Это кажется более процедурным или функциональным для меня. Мое мнение таково, что это не мешает вам реализовать его на языке ОО, но это не будет идиоматичным, если вы будете делать это абсолютно уверенно. Кажется, что ECS отделяет данные (E & …

10
Может / должен ли Принцип единой ответственности применяться к новому коду?
Принцип определяется как модули, имеющие одну причину для изменения . Мой вопрос, конечно, эти причины изменения не известны, пока код фактически не начинает меняться ?? Практически каждый фрагмент кода имеет множество причин, по которым он может измениться, но, безусловно, попытка предвидеть все это и разработать свой код с учетом этого …

2
Что такое «хорошее количество» исключений для моей библиотеки?
Мне всегда было интересно, сколько разных классов исключений я должен реализовать и выбросить для разных частей моего программного обеспечения. Моя конкретная разработка обычно связана с C ++ / C # / Java, но я считаю, что это вопрос для всех языков. Я хочу понять, что такое большое количество различных исключений …

7
Является ли написание собственного уровня доступа к данным / отображения данных «хорошей» идеей?
В настоящее время мы находимся в ситуации, когда у нас есть выбор между использованием готового объектно-реляционного картографического модуля или развертыванием собственного У нас есть устаревшее приложение (ASP.NET + SQL Server), где, к сожалению, уровень данных и бизнес-уровень объединены. Система не особенно сложна с точки зрения доступа к данным. Он считывает …

1
Вложенные REST-URL и родительский идентификатор, какой дизайн лучше?
Хорошо, у нас есть два ресурса: Albumи Song. Вот API: GET,POST /albums GET,POST /albums/:albumId GET,POST /albums/:albumId/songs GET,POST /albums/:albumId/songs/:songId Мы знаем, что мы ненавидим какую-то песню, это называется Susy, например. Куда мы должны положить searchдействие? Другой вопрос. Хорошо, теперь это более реально. Открываем альбом 1 и загружаем все песни. Мы создаем …

7
Разница между паттерном и принципом
Чем отличаются объектно-ориентированные шаблоны проектирования и принципы? Это разные вещи? Насколько я понял, они оба пытаются достичь какой-то общей цели (например, гибкость). Так могу ли я сказать, что паттерн - это принцип, и наоборот? Принцип проектирования = SOLID (т.е. принцип инверсии зависимости) Шаблон проектирования = Gof (т.е. абстрактный шаблон фабрики)

5
AntiPattern использует классы *** Helper или *** Util, содержащие только статические методы
Я часто сталкиваюсь с вспомогательными или утилитарными классами на Java или на любом другом языке. Поэтому я спрашивал себя, не является ли это своего рода Anti Pattern, а существование таких классов - просто отсутствие недостатков в дизайне и архитектуре программного обеспечения. Часто эти классы ограничиваются использованием только статических методов, которые …

4
Как слишком много переменных экземпляра приводит к дублированию кода?
Согласно рефакторингу по шаблонам : Когда класс пытается сделать слишком много, он часто отображается как слишком много переменных экземпляра. Когда у класса слишком много переменных экземпляра, дублированный код не может быть далеко позади. Как слишком много переменных экземпляра приводит к дублированию кода?

4
В чем разница между принципом единой ответственности и разделением интересов
а) В чем разница между SRP и SoC ? Возможно, что SRP применяется на уровне класса, в то время как SoC может применяться на уровне системы , подсистемы , модуля , класса или функции . б) Если ответ на а) положительный , то применяется ли SoC на уровне класса как …

9
Насколько важны шаблоны проектирования в программировании?
Я студент университета, и я только начал изучать шаблоны проектирования, и я изо всех сил пытаюсь понять их назначение. Я пытался исследовать их, но все ресурсы, которые я нашел, похоже, говорят о них академическим, а не профессиональным способом. Какова их цель и важны ли они для изучения?

3
Шаблоны для передачи контекста через цепочку методов
Это дизайнерское решение, которое, кажется, приходит довольно много: как передать контекст через метод, который ему не нужен, в метод, который это делает. Есть ли правильный ответ или это зависит от контекста. Пример кода, который требует решения // needs the dependency function baz(session) { session('baz'); } // doesn't care about the …

6
Является ли регистрация рядом с реализацией нарушением SRP?
Размышляя о гибкой разработке программного обеспечения и всех принципах (SRP, OCP, ...), я спрашиваю себя, как относиться к ведению журнала. Является ли регистрация рядом с реализацией нарушением SRP? Я бы сказал, yesпотому что реализация должна быть в состоянии работать без регистрации. Итак, как я могу реализовать ведение журнала лучше? Я …

2
Есть ли доказательства того, что использование внедрения зависимостей улучшает результаты в разработке программного обеспечения?
Несмотря на его популярность, есть ли эмпирические данные, которые показывают, что Dependency Injection (и / или использование DI-контейнера) помогает, скажем, уменьшать количество ошибок, улучшать удобство обслуживания или увеличивать скорость разработки в реальных программных проектах?

2
Является ли хорошей идеей определить одну большую частную функцию в классе для поддержания действительного состояния, то есть обновить элементы данных объекта?
Хотя в приведенном ниже коде используется простая покупка одного элемента на сайте электронной коммерции, мой общий вопрос заключается в обновлении всех членов данных, чтобы все время сохранять данные объекта в действительном состоянии. Я нашел «последовательность» и «состояние зла» как соответствующие фразы, обсуждаемые здесь: https://en.wikibooks.org/wiki/Object_Oriented_Programming#.22State.22_is_Evil.21 <?php class CartItem { private $price …

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