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

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

2
Чем шаблон публикации-подписки отличается от gotos?
Насколько я понимаю, заявления Гото, как правило, осуждаются . Но шаблон « публикация-подписка» концептуально похож на то, что, когда часть кода публикует сообщение, он выполняет одностороннюю передачу управления. Программист может не знать, какие части программы подписываются на это сообщение. Я видел нечто подобное во многих программах на JavaScript, в которых …

1
MVC + 3 уровня; где ViewModels вступают в игру?
Я разрабатываю трехуровневое приложение с использованием ASP.NET MVC 4. В качестве справки я использовал следующие ресурсы. CodeProject: MVC + N-уровень + Entity Framework Разделение доступа к данным в ASP.NET MVC У меня есть следующий дизайн. Уровень представления (PL) (основной проект MVC, где M of MVC был перемещен на уровень доступа …

2
Разработчик .Net пытается выучить ruby ​​на рельсах
Я разработчик .NET, и у меня была возможность поиграть с Ruby on Rails в эти выходные. В .NET мы разделяем слои приложения, создавая отдельные проекты библиотеки классов. С точки зрения шаблонов проектирования, мы должны делать это и в Rails, или это всего лишь один проект со всем в нем?

4
Командный дизайн
У меня есть эта старая реализация шаблона Command. Это своего рода передача контекста через всю реализацию DIOperation , но позже я понял, что в процессе обучения и обучения (что никогда не останавливается) это не оптимально. Я также думаю, что «посещение» здесь не совсем подходит и просто сбивает с толку. Я …

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

3
Когда Efferent / Afferent сцепление хорошо или плохо
На этой неделе у меня экзамен по программным паттернам, и одной из тем, которые мы должны изучить, является эфферентная и афферентная связь. Я понимаю, что пакет имеет высокий Ce (эфферентное связывание), если это зависит от ряда других типов. Например: class Car{ Engine engine; Wheel wheel; Body body; } Этот класс …

5
css - использовать универсальный селектор '*' против HTML или селектора тела?
Применение стилей к тегу body будет применено ко всей странице, поэтому body { font-family: Verdana } будет применяться ко всей странице. Это также может быть сделано с * {font-family: Verdana} который будет применяться ко всем элементам и, следовательно, будет иметь тот же эффект. Я понимаю принцип, что в первом случае …

8
Почему шаблоны проектирования не добавляются в языковые конструкции?
Недавно я разговаривал с коллегой, который упомянул, что его компания работает над добавлением шаблона проектирования MVC в качестве расширения PHP. Он объяснил, что они написали C-код для добавления Controllers, Models and Viewsв языковые конструкции для повышения производительности. Теперь я знаю, что MVC - это шаблон архитектурного проектирования, который широко используется …

9
Какой ОО дизайн использовать (есть ли шаблон дизайна)?
У меня есть два объекта, которые представляют «Бар / Клуб» (место, где вы пьете / общаетесь). В одном сценарии мне нужно имя бара, адрес, расстояние, слогон В другом сценарии мне нужно название бара, адрес, URL сайта, логотип Итак, у меня есть два объекта, представляющих одно и то же, но с …

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

2
Каковы преимущества отделения «результата» от «статуса»
Допустим, у вас есть некоторые автоматизированные процессы, которые обычно проходят через следующие состояния; запланировано - инициировано - проверено - выполняется - выполнено Кроме того, эти процессы могут преждевременно завершиться из-за ошибки или явной отмены пользователя. Мой первый импульс - просто добавить ошибку и отменить в список возможных значений состояния, но …

4
Есть ли у итератора неразрушающий подразумеваемый контракт?
Допустим, я проектирую собственную структуру данных, такую ​​как стек или очередь (например, - это может быть какая-то другая произвольная упорядоченная коллекция, которая имеет логический эквивалент pushи popметоды - то есть деструктивные методы доступа). Если бы вы реализовывали итератор (в частности, в .NET IEnumerable<T>) для этой коллекции, которая появлялась на каждой …

3
Много ли используется CRTP? и почему это / нет? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Я думаю о странно повторяющихся шаблонах . Я нахожу это весьма полезным, и …

6
Борьба с принципом единой ответственности
Рассмотрим этот пример: У меня есть сайт. Это позволяет пользователям создавать сообщения (может быть что угодно) и добавлять теги, которые описывают сообщение. В коде у меня есть два класса, которые представляют пост и теги. Давайте назовем эти классы Postи Tag. Postзаботится о создании сообщений, удалении сообщений, обновлении сообщений и т. …

4
Создать поведенческую / компонентную систему для игр
Фон Я занимаюсь разработкой игр как хобби и ищу лучший способ их дизайна. В настоящее время я использую стандартный подход ООП (я занимаюсь разработкой предприятия 8 лет, так что это происходит в обычном порядке). Взять, к примеру, «злодея» public class Baddie:AnimatedSprite //(or StaticSprite if needed, which inherit Sprite) { //sprite …

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