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

39
Обеспечение возможности поиска кода с помощью глобально уникальных идентификаторов сообщений

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

39
Являются ли служебные классы, содержащие только статические члены, антипаттерном в C ++?

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

39
Разница между идиомой и дизайном шаблона?

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

39
Сколько бизнес-логики должно существовать на уровне контроллера?

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

38
Где мы должны поставить проверку для модели домена

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

38
Является ли буква C в MVC действительно необходимой?

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

37
Как мне преодолеть паралич с помощью анализа при кодировании?

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

37
Является ли «Mapper» допустимым шаблоном дизайна или это вариант «Factory»?

Обычный шаблон, который я вижу, - это то, что известно как Mapperшаблон (не путать с DataMapperкоторым, что-то совсем другое), который принимает в качестве аргумента некий «необработанный» источник данных (например, ADO.NET DataReaderили DataSet) и сопоставляет поля с свойства объекта бизнес /...

37
При написании объектно-ориентированного кода я должен всегда следовать шаблону проектирования?

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

37
Подклассы только для конструктора: это анти-шаблон?

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

37
Убедитесь, что у каждого класса есть только одна ответственность, почему?

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

37
Почему шаблон внедрения зависимости не был включен в Банду четырех?

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

36
Важность шаблонов проектирования с использованием Javascript, NodeJs и др.

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

36
Кэширование на бизнес-уровне против Кэширования на уровне данных

Я всегда работал над проектами, в которых кеширование выполнялось на DAL, в основном именно тогда, когда вы собираетесь выполнить вызов в базу данных, он проверяет, есть ли данные в кэше, и если он есть, он просто не выполняет вызов и вместо этого возвращает эти данные. Я только недавно прочитал о...

36
Как избежать большого и неуклюжего UITableViewController на iOS?

У меня проблема при реализации MVC-паттерна на iOS. Я искал в Интернете, но, похоже, не нашел хорошего решения этой проблемы. Многие UITableViewControllerреализации кажутся довольно большими. Большинство примеров, которые я видел, позволяют UITableViewControllerреализовать...

36
Эквивалент принципов SOLID для функционального программирования

Я нашел принципы SOLID весьма полезными, когда размышляю над объектно-ориентированным дизайном. Существует ли подобный / эквивалентный набор не зависящих от языка принципов, адаптированных для функционального...

36
ООП становится легче или сложнее? [закрыто]

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

35
Должна ли директива angularjs напрямую взаимодействовать со службами или она считается анти-паттерном?

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

35
MVCS - магазин контроллеров модельного представления

Недавно я решил начать изучать разработку под iOS, и с этой целью я читал Программирование на iOS: Руководство по ранчо для больших ботаников . В книге авторы описывают шаблон проектирования MVCS - Model-View-Controller-Store , основная идея которого заключается в том, что, поскольку во многих...

35
Есть ли шаблон дизайна, который будет применяться к дисконтным моделям?

Существуют ли известные шаблоны проектирования для реализации дисконтных моделей? Под дисконтными моделями я имею в виду следующее: Если клиент покупает продукт X, продукт Y и продукт Z, он получает скидку в размере 10% или 100 долларов США. Если клиент покупает 100 единиц Продукта X, он получает...