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

54
Термин (или «шаблон»?) Для «Сделай что-нибудь, если это еще не сделано» [закрыто]

Звучит довольно просто, я знаю, но недавно мой коллега сказал мне, что вызываемый метод startHttpServerслишком сложен для понимания, потому что он запускает сервер, только если он еще не запущен. Я обнаруживаю, что попадаю в неприятности, когда отвечаю: «Серьезно? Я занимаюсь этим десятилетиями -...

54
Архитектура MVC - сколько контроллеров мне нужно?

Я давно программирую, но в основном это скрипты и простые приложения. Я перешел к новой роли, где все сводится к разработке веб-приложений и использованию правильной архитектуры MVC, поэтому я отчаянно пытаюсь узнать обо всем этом очень быстро. Я надеюсь, что этот вопрос не слишком похож на «...

52
Лучшие практики / Шаблоны для двусторонней синхронизации данных

Довольно часто в моей работе возникает идея двусторонней синхронизации данных между системами баз данных. Классический пример - две слегка отличающиеся системы CRM (скажем, Raiser's Edge и Salesforce) и необходимость двухсторонней синхронизации данных контактов между ними. Помимо соображений API,...

49
Должны ли мы избегать пользовательских объектов в качестве параметров?

Предположим, у меня есть пользовательский объект, студент : public class Student{ public int _id; public String name; public int age; public float score; } И класс Window , который используется для отображения информации об ученике : public class Window{ public void showInfo(Student student); } Это...

49
Какой смысл в шаблоне PImpl, хотя мы можем использовать интерфейс для той же цели в C ++?

Я вижу много исходного кода, который использует идиому PImpl в C ++. Я предполагаю, что его цель - скрыть личные данные / тип / реализацию, чтобы убрать зависимость, а затем уменьшить время компиляции и проблему включения заголовка. Но интерфейсные / чисто абстрактные классы в C ++ также имеют эту...

49
Есть ли каноническая книга по шаблонам дизайна? [закрыто]

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

49
Каковы улучшения MVP по сравнению с MVC?

В течение трех дней я читал о шаблонах Model-View-Controller (MVC) и Model-View-Presenter (MVP) . И есть один вопрос, который меня очень беспокоит. Почему разработчики программного обеспечения изобрели MVP, когда уже был MVC? С какими проблемами они столкнулись, что MVC не решил (или решил плохо),...

46
Почему цепные сеттеры нетрадиционны?

Реализация цепочки на bean-компонентах очень удобна: нет необходимости перегружать конструкторы, мега-конструкторы, фабрики и обеспечивает повышенную читаемость. Я не могу думать о минусах, если только вы не хотите, чтобы ваш объект был неизменным , и в этом случае у него все равно не было бы...

45
Образец Строителя: Когда терпеть неудачу?

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

44
Какова цель NaN бокса?

Чтение 21-го века C Я пришел к главе 6 в разделе «Маркировка исключительных числовых значений с помощью NaN» , где объясняется использование битов в мантиссе для хранения некоторых произвольных битовых комбинаций, для их использования в качестве маркеров или указателей (упоминается в книге что...

44
Это плохая практика, что хранилище вызовов контроллера вместо службы?

Это плохая практика, что хранилище вызовов контроллера вместо службы? объяснить больше: Я выяснил, что в хорошем дизайне контроллеры называют сервис, а сервис используют репозиторий. но иногда в контроллере у меня нет / нужна какая-то логика и мне просто нужно извлечь из базы данных и передать ее...

44
Шаблоны дизайна - вы их используете?

Будучи студентом IT, один из наших преподавателей недавно дал мне некоторое представление о шаблонах проектирования. Я понял, для чего они, но некоторые аспекты все еще продолжают беспокоить меня. Они действительно используются большинством программистов? Говоря об опыте, у меня были некоторые...

44
Распространение исключений: когда я должен ловить исключения?

MethodA вызывает MethodB, который, в свою очередь, вызывает MethodC. Нет обработки исключений в MethodB или MethodC. Но в MethodA есть обработка исключений. В MethodC происходит исключение. Теперь это исключение всплывает в методе А, который обрабатывает его соответствующим образом. Что не так с...

44
Переменные ошибок - это анти-шаблон или хороший дизайн?

Для обработки нескольких возможных ошибок, которые не должны останавливать выполнение, у меня есть errorпеременная, которую клиенты могут проверять и использовать для создания исключений. Это анти-паттерн? Есть ли лучший способ справиться с этим? Для примера этого в действии вы можете увидеть PHP...

43
Каковы недостатки MVC? [закрыто]

Я использую MVC / MV * с тех пор, как начал организовывать свой код много лет назад. Я использую его так долго, что даже не могу придумать какой-либо другой способ структурирования своего кода, и каждая работа, которую я имел после стажировки, была основана на MVC. У меня вопрос, каковы недостатки...

42
Является ли производительность единственной причиной не использовать SignalR (websockets) полностью вместо традиционного REST API?

Я использовал SignalRдля достижения функциональности обмена сообщениями в реальном времени в нескольких из моих проектов. Кажется, он работает надежно и очень прост в освоении. Искушение, по крайней мере для меня, состоит в том, чтобы отказаться от разработки сервиса Web API и использовать его...

41
Когда опрос по событиям будет лучше, чем использование шаблона наблюдателя?

Существуют ли сценарии, в которых опрос событий был бы лучше, чем использование шаблона наблюдателя ? У меня есть страх перед использованием опроса, и я бы начал его использовать, только если бы кто-то дал мне хороший сценарий. Все, о чем я могу думать, - это то, как шаблон наблюдателя лучше, чем...

40
В чем разница между фабричным шаблоном и абстрактной фабрикой?

Наконец, серьезно начав пытаться выучить некоторые базовые паттерны (очень поздно в карьере, но это уже другая история), я пытаюсь разобраться в различиях между Фабричным паттерном и Абстрактной Фабрикой. Каковы основные различия между этими двумя моделями? Я понимаю, что Фабричный метод создает...

40
Почему избегать наследования Java «расширяет»

Джейм Гослинг сказал «Вы должны по возможности избегать наследования реализации». и вместо этого используйте наследование интерфейса. Но почему? Как мы можем избежать наследования структуры объекта, используя ключевое слово «extends», и в то же время сделать наш код «Object Oriented»? Может ли...

40
Что такое помощник? Это шаблон дизайна? Это алгоритм?

Может быть, немного насмешливо, но так как я не могу найти этот ответ нигде в Google, чтобы убедиться, что у Software Engineering есть ответ: Что такое помощник? Я видел, как имя используется везде (имена модулей, имена классов, имена методов), как будто семантика была глубокой и содержательной, но...