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

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

13
Где М в MVC?
Я пытаюсь реорганизовать свое приложение в MVC, но я застрял на М-части. В приложении, поддерживаемом базой данных, модель реализована в коде приложения, верно? Но тогда, что находится в базе данных - это не модель? (Я не использую базу данных в качестве простого хранилища объектов - данные в БД являются активом …

8
Когда следует устранить сложность?
Преждевременное введение сложности путем реализации шаблонов проектирования до того, как они необходимы, не является хорошей практикой. Но если вы будете следовать всем (или даже большинству) принципам SOLID и использовать общие шаблоны проектирования, вы внесете некоторую сложность, так как функции и требования будут добавлены или изменены, чтобы сохранить ваш дизайн как …

3
Советы / советы о том, как сократить использование классов «менеджер»?
Я иногда слышу, что наличие слишком большого количества классов «менеджера» в дизайне вашей программы - это запах кода и добавляет ненужный уровень сложности. Для меня имеет смысл, что люди хотят использовать классы менеджера для манипулирования объектами и управления ими из контекста, который имеет для них смысл, но выяснение того, как …

12
Является ли это использование условных выражений анти-паттерном?
Я часто видел это в нашей унаследованной системе - функции, которые работают примерно так: bool todo = false; if(cond1) { ... // lots of code here if(cond2) todo = true; ... // some other code here } if(todo) { ... } Другими словами, функция состоит из двух частей. Первая часть …

3
Абстрактный базовый класс с интерфейсами как поведением?
Мне нужно спроектировать иерархию классов для моего проекта на C #. По сути, функциональные возможности классов аналогичны классам WinForms, поэтому давайте возьмем в качестве примера инструментарий WinForms. (Однако я не могу использовать WinForms или WPF.) Есть некоторые основные свойства и функциональные возможности, которые должен обеспечить каждый класс. Размеры, положение, цвет, …

2
Существует ли шаблон декоратора в классах Java IO?
Для задания, я должен выяснить , какие из банды четыре шаблона проектирования классов java.io.Readerи его подклассы java.io.PushbackReader, java.io.BufferedReaderи java.io.FilterReaderбыли построены. Согласно этому посту, шаблон дизайна будет шаблоном Decorator. Это имеет смысл только для меня , если PushbackReader, BufferedReaderи FilterReaderможет быть украшено быть использованы одновременно, создавая эффективно BufferedPushbackFilterReader. Это идея?

3
Как настроить MVP для решения Winforms?
В прошлом я использовал MVP и MVC, и я предпочитаю MVP, так как, на мой взгляд, он намного лучше контролирует ход выполнения. Я создал свою инфраструктуру (классы хранилища данных / репозитория) и без проблем использую их при жестком кодировании примеров данных, поэтому теперь я перехожу к графическому интерфейсу и готовлю …

6
Чистый функционал против скажите, не спрашивайте?
«Идеальное число аргументов для функции - ноль» - совершенно неверно. Идеальное количество аргументов - это именно то количество, которое необходимо, чтобы ваша функция не имела побочных эффектов. Меньше этого, и вы без необходимости заставляете свои функции быть нечистыми, вынуждая вас уклоняться от пропасти успеха и подниматься на градиент боли. Иногда …

2
Объектно-ориентированное и векторное программирование
Я разрываюсь между объектно-ориентированным и векторным дизайном. Я люблю способности, структуру и безопасность, которые объекты дают всей архитектуре. Но в то же время скорость очень важна для меня, и наличие простых переменных с плавающей точкой в ​​массиве действительно помогает в векторных языках / библиотеках, таких как Matlab или numpy в …

3
В MVC DAO должен вызываться из контроллера или модели
Я видел различные аргументы против прямого вызова DAO из класса Controller, а также DAO из класса Model. Фактически я лично чувствую, что если мы следуем шаблону MVC, контроллер должен быть связан не с DAO, а с классом Model. должен вызывать DAO изнутри, а контроллер должен вызывать класс модели. Почему мы …

3
Должен ли DAO быть синглтоном или нет?
Я разрабатываю RESTful API, и я думаю, что для моих ресурсов удобно использовать DAO, потому что, хотя я планирую просто использовать память для их хранения, я не хочу закрывать дверь тому, кто использует мою библиотеку, если они решили использовать реализация базы данных для DAO. Мой вопрос заключается в том, должен …

7
Заводской паттерн нарушает принцип Open / Closed?
Почему этот ShapeFactory использует условные операторы, чтобы определить, какой объект нужно создать. Разве нам не нужно изменять ShapeFactory, если мы хотим добавить другие классы в будущем? Почему это не нарушает принцип открытого закрытого?

3
Model-View-Controller: взаимодействует ли пользователь с View или с Controller? [закрыто]
Закрыто . Этот вопрос нуждается в деталях или ясности . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Добавьте детали и проясните проблему, отредактировав этот пост . Закрыто 5 лет назад . Недавно я узнал о шаблоне проектирования MVC. Я учусь на книге Head First Design Pattern. …

7
Может ли шаблон Стратегии быть реализован без существенного разветвления?
Шаблон Стратегии хорошо работает, чтобы избежать огромных конструкций if ... else и облегчить добавление или замену функциональности. Тем не менее, это все еще оставляет один недостаток, на мой взгляд. Кажется, что в каждой реализации все еще должна быть ветвящаяся конструкция. Это может быть фабрика или файл данных. В качестве примера …

4
Шаблон проектирования C # для рабочих с разными входными параметрами
Я не уверен, какой шаблон проектирования может помочь мне решить эту проблему. У меня есть класс Coordinator, который определяет, какой класс Worker должен использоваться - без необходимости знать обо всех различных типах Workers - он просто вызывает WorkerFactory и действует на общий интерфейс IWorker. Затем он устанавливает соответствующий Worker и …

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