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

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

3
Кто должен управлять навигацией в приложении MVVM?
Пример # 1: у меня есть представление, отображаемое в моем приложении MVVM (давайте использовать Silverlight для целей обсуждения), и я нажимаю кнопку, которая должна перенести меня на новую страницу. Пример # 2: В этом же представлении есть еще одна кнопка, которая при нажатии открывает окно подробностей в дочернем окне (диалоге). …

5
Почему базы кода в n-уровневой разработке имеют равное количество, если не больше, кода JavaScript сейчас?
Я давно занимаюсь веб-программированием, и где-то я забыл, почему мы делаем то, что делаем сегодня (или как мы поступили так)? Я начал с базовой веб-разработки на ASP, и очень рано, на странице были смешаны отображение и бизнес-логика. Разработка на стороне клиента сильно различалась (VBScript, различные варианты JavaScript), и у нас …

8
Это хорошая практика, чтобы использовать список перечислений?
В настоящее время я работаю в системе, где есть пользователи, и у каждого пользователя есть одна или несколько ролей. Является ли хорошей практикой использование списка значений Enum для пользователя? Я не могу придумать ничего лучшего, но с этим не все в порядке. enum Role{ Admin = 1, User = 2, …

9
Следует ли нам избегать использования шаблонов проектирования в постоянно меняющихся проектах?
Мой друг работает в небольшой компании над проектом, который ненавидит каждый разработчик: он вынужден выпустить как можно быстрее, он единственный, кто, похоже, заботится о техническом долге, у клиента нет технической подготовки и т. Д. Он рассказал мне историю, которая заставила меня задуматься о целесообразности шаблонов проектирования в подобных проектах. Вот …

3
Каков принцип наименьшего удивления?
В программировании то, что называется принципом наименьшего удивления? Как эта концепция связана с разработкой хороших API? Это применимо только к объектно-ориентированному программированию или оно проникает и в другие методы программирования? Связано ли это с принципом «делать что-то в своем методе и делать это хорошо»?

11
Хорошо разработанное / высококачественное программное обеспечение с открытым исходным кодом [закрыто]
Я учусь на уроке дизайна программного обеспечения, где мне следует выбрать программное обеспечение с открытым исходным кодом для анализа с точки зрения дизайна программного обеспечения. Это должен быть большой проект: не менее 100 000 строк кода. Я действительно хотел бы выбрать программное обеспечение, которое очень хорошо разработано и спроектировано, чтобы …

2
Выбор правильного шаблона дизайна
Я всегда осознавал важность использования шаблонов дизайна. Мне интересно, как другие разработчики выбирают наиболее подходящий. Используете ли вы ряд характеристик (например, блок-схему), чтобы помочь вам принять решение? Например: Если объекты связаны, но мы не хотим указывать конкретный класс, рассмотрим абстрактный Когда создание экземпляров оставлено производным классам, рассмотрим Factory Необходим доступ …

7
Почему шаблон проектирования метода фабрики полезнее, чем иметь классы и вызывать их по отдельности?
Из шаблонов проектирования «Банды четырех» есть метод Фабрики: class Factory(product) case product when a new A when b new B when c new C end new Factory(a) Почему это более полезно , чем иметь три класса, a, bи cи называя их по отдельности?

9
Зачем нам нужен класс Builder при реализации шаблона Builder?
Я видел много реализаций шаблона Builder (в основном на Java). Все они имеют класс сущности (скажем, Personкласс) и класс строителя PersonBuilder. Конструктор "складывает" различные поля и возвращает a new Personс переданными аргументами. Зачем нам явно нужен класс построителя вместо того, чтобы помещать все методы построителя в сам Personкласс? Например: class …

1
Является ли «StringBuilder» приложением шаблона проектирования Builder?
Ограничен ли шаблон «Строитель» обращением к анти-шаблону «телескопический конструктор», или можно сказать, что он также решает более общую проблему сложного создания неизменяемых объектов? У StringBuilderкласса есть слово «строитель» в его имени, но он не имеет ничего общего с телескопическими конструкторами, он просто помогает нам собрать все данные, которые нам нужно …

10
Вы обычно отправляете объекты или их переменные-члены в функции?
Что является общепринятой практикой между этими двумя случаями: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } или function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Другими словами, лучше ли передавать объекты целиком или только те поля, которые вам нужны?

7
Это запах кода, чтобы установить флаг в цикле, чтобы использовать его позже?
У меня есть фрагмент кода, в котором я повторяю карту до тех пор, пока определенное условие не станет истинным, а затем позже использую это условие, чтобы выполнить еще кое-что. Пример: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() …

9
Существуют ли шаблоны проектирования, которые возможны только в динамически типизированных языках, таких как Python?
Я прочитал соответствующий вопрос. Существуют ли какие-либо шаблоны проектирования, которые не нужны в динамических языках, таких как Python? и запомнил эту цитату на Wikiquote.org Замечательная вещь о динамической типизации - она ​​позволяет вам выражать все, что можно вычислить. А системы типов - системы типов, как правило, разрешимы, и они ограничивают …

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

10
Интерфейсы на абстрактном классе
У меня и моего коллеги разные мнения о взаимоотношениях между базовыми классами и интерфейсами. Я полагаю, что класс не должен реализовывать интерфейс, если только этот класс не может использоваться, когда требуется реализация интерфейса. Другими словами, мне нравится видеть такой код: interface IFooWorker { void Work(); } abstract class BaseWorker { …

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