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

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

6
Обеспечение возможности поиска кода с помощью глобально уникальных идентификаторов сообщений
Общий шаблон для обнаружения ошибки следует за этим сценарием: Соблюдайте странности, например, отсутствие вывода или зависание программы. Найдите соответствующее сообщение в журнале или выходе программы, например, «Не удалось найти Foo». (Следующее применимо только в том случае, если этот путь используется для обнаружения ошибки. Если трассировка стека или другая отладочная информация …

9
Являются ли служебные классы, содержащие только статические члены, антипаттерном в C ++?
Вопрос « Куда мне помещать функции, не связанные с классом », вызвал некоторые споры о том, имеет ли смысл в C ++ объединять служебные функции в классе или они просто существуют как свободные функции в пространстве имен. Я пришел из C # фона, где последний вариант не существует, и, таким …

10
Разница между идиомой и дизайном шаблона?
В чем разница между идиомой и дизайном? Кажется, что эти термины где-то частично совпадают; где именно, я не знаю. Они взаимозаменяемы? Когда я должен использовать что? Вот список идиом C ++. Могу ли я назвать их шаблонами дизайна? Википедия определяет, Идиома программирования как шаблон проектирования низкого уровня Что это означает? …

6
Сколько бизнес-логики должно существовать на уровне контроллера?
Иногда у нас есть некоторая бизнес-логика, представленная в коде контроллера наших приложений. Обычно это логика, которая отличает, какие методы вызывать от модели и / или какие аргументы для их передачи. Другим примером этого является набор служебных функций, которые существуют в контроллере, которые могут работать для форматирования или очистки данных, возвращаемых …

4
Где мы должны поставить проверку для модели домена
Я все еще ищу лучшие практики для проверки модели предметной области. Это хорошо, чтобы поставить проверку в конструкторе модели предметной области? мой пример проверки модели домена выглядит следующим образом: public class Order { private readonly List<OrderLine> _lineItems; public virtual Customer Customer { get; private set; } public virtual DateTime OrderDate …

11
Является ли буква C в MVC действительно необходимой?
Я понимаю роль модели и представления в шаблоне Model-View-Controller, но мне трудно понять, зачем нужен контроллер. Давайте предположим, что мы создаем шахматную программу, используя подход MVC; игровое состояние должно быть моделью, а графический интерфейс должен быть представлением. Какой именно контроллер в этом случае? Это просто отдельный класс, в котором есть …

9
При написании объектно-ориентированного кода я должен всегда следовать шаблону проектирования?
Есть ли мыслимый шаблон проектирования для какой-либо объектно-ориентированной программы? Я спрашиваю об этом, потому что недавно я увидел реализацию Doorкласса с Lock. Это было частью теста, и в ответ было сказано, что код соответствует шаблону Null Object: class Lock { public: virtual void close() = 0; virtual void open() = …

11
Убедитесь, что у каждого класса есть только одна ответственность, почему?
Согласно документации Microsoft, статье SOLID Wikipedia SOLID или большинству ИТ-архитекторов мы должны гарантировать, что каждый класс несет только одну ответственность. Я хотел бы знать почему, потому что, если все, кажется, согласны с этим правилом, никто не соглашается с причинами этого правила. Некоторые ссылаются на лучшее обслуживание, другие говорят, что оно …

11
Подклассы только для конструктора: это анти-шаблон?
У меня была беседа с коллегой, и в итоге у нас возникли противоречивые представления о цели создания подклассов. Моя интуиция заключается в том, что если основная функция подкласса должна выражать ограниченный диапазон возможных значений его родителя, то, вероятно, это не должен быть подкласс. Он высказался за противоположную интуицию: то, что …

4
Почему шаблон внедрения зависимости не был включен в Банду четырех?
Почему шаблон внедрения зависимостей не был включен в группу из четырех человек ? GOF предшествовал широкому распространению автоматизированного тестирования? Считается ли внедрение зависимостей основным шаблоном?

6
Является ли «Mapper» допустимым шаблоном дизайна или это вариант «Factory»?
Обычный шаблон, который я вижу, - это то, что известно как Mapperшаблон (не путать с DataMapperкоторым, что-то совсем другое), который принимает в качестве аргумента некий «необработанный» источник данных (например, ADO.NET DataReaderили DataSet) и сопоставляет поля с свойства объекта бизнес / домен. Пример: class PersonMapper { public Person Map(DataSet ds) { …

9
Как мне преодолеть паралич с помощью анализа при кодировании?
Когда я начинаю новый проект, я часто сразу начинаю думать о деталях реализации. «Где я собираюсь поместить DataBaseHandler? Как я должен его использовать? Должны ли классы, которые хотят его использовать, выходить из какого-то абстрактного суперкласса? .. Должен ли я использовать интерфейс? Какой уровень абстракции я собираюсь использовать в своем классе, …

6
Как избежать большого и неуклюжего UITableViewController на iOS?
У меня проблема при реализации MVC-паттерна на iOS. Я искал в Интернете, но, похоже, не нашел хорошего решения этой проблемы. Многие UITableViewControllerреализации кажутся довольно большими. Большинство примеров, которые я видел, позволяют UITableViewControllerреализовать <UITableViewDelegate>и <UITableViewDataSource>. Эти реализации - большая причина, почему UITableViewControllerстановится большим. Одним из решений будет создание отдельных классов, которые …

8
ООП становится легче или сложнее? [закрыто]
Когда концепции объектно-ориентированного программирования были представлены программистам много лет назад, это выглядело интересно, и программирование было чище. ООП было так Stock stock = new Stock(); stock.addItem(item); stock.removeItem(item); Это было легче понять с помощью информативного имени. Но теперь ООП с такими шаблонами, как объекты передачи данных, объекты значений, репозиторий, внедрение зависимостей …

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

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