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

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

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

4
Какой шаблон дизайна больше подходит для регистрации?
Я должен регистрировать некоторые события в программе, но, насколько я знаю, было бы лучше оставить код регистрации вне программы, потому что это не касается реальной функциональности программы. Можете ли вы сказать мне, если я должен полностью исключить его из кода и использовать только Наблюдатели и Слушатели для регистрации событий? Или …

2
Где проверить правила модели домена, которые зависят от содержимого базы данных?
Я работаю над системой, которая позволяет администраторам определять формы, содержащие поля. Затем определенные формы используются для ввода данных в систему. Иногда формы заполняются человеком через графический интерфейс, иногда форма заполняется на основе значений, сообщаемых другой системой. Для каждого поля администратор может определить правило проверки, которое ограничивает допустимые значения для поля. …

2
Контекстный класс в шаблоне Стратегии
Я пытаюсь понять шаблон стратегии и спрашиваю себя: должен ли быть контекстный класс или я могу оставить его без компромисса с целью шаблона? У меня сложилось впечатление, что мне нужен какой-то переключатель для чтения разных типов файлов, но я не хотел просто что-то взламывать, а потом заниматься рефакторингом (хотя, конечно, …

5
В MVC можно / нужно выполнять базовый поиск данных из модели в представлении?
Учитывая концепцию «тощих контроллеров, толстых моделей» и общее признание того, что представления могут напрямую вызывать модели, когда требуются данные для вывода, следует ли рассматривать обработку частей «получить и отобразить» запросов в представлениях, а не контроллер? Например (попытка сделать код достаточно общим): контроллер <?php class Invoice extends Base_Controller { /** * …

7
Является ли использование условий безопасности в представлении нарушением MVC?
Часто то, что отображается пользователю (например, на веб-странице), будет частично основано на проверках безопасности. Обычно я считаю, что безопасность на уровне пользователя / ACL является частью бизнес-логики системы. Если представление явно проверяет безопасность для условного отображения элементов пользовательского интерфейса, нарушает ли оно MVC, сдерживая бизнес-логику?

1
Полезные шаблоны дизайна для работы с FragmentManager на Android
При работе с фрагментами я использовал класс, состоящий из статических методов, которые определяют действия над фрагментами. Для любого данного проекта у меня может быть класс с именем FragmentActions, который содержит методы, подобные следующим: public static void showDeviceFragment(FragmentManager man){ String tag = AllDevicesFragment.getFragmentTag(); AllDevicesFragment fragment = (AllDevicesFragment)man.findFragmentByTag(tag); if(fragment == null){ fragment …

5
Как выполнить модульное тестирование функции, которая подвергается рефакторингу к шаблону стратегии?
Если у меня есть функция в моем коде, которая выглядит следующим образом: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Обычно я реорганизовал бы это, чтобы использовать Ploymorphism, используя фабричный класс и шаблон стратегии: public …

4
Шаблон проектирования для обработки ответа
Большую часть времени, когда я пишу некоторый код, который обрабатывает ответ для определенного вызова функции, я получаю следующую структуру кода: пример: это функция, которая будет обрабатывать аутентификацию для системы входа class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send …

6
Почему подклассы слишком плохи (и, следовательно, почему мы должны использовать прототипы, чтобы покончить с этим)?
Я читал о шаблонах проектирования и читал, что шаблон проектирования прототипа избавляет от чрезмерного создания подклассов. Почему подклассы плохо? Какое преимущество даст использование прототипа по сравнению с подклассами?

4
Грамотное программирование, методология хорошего / плохого дизайна
Недавно я нашел концепцию грамотного программирования . И я нашел это довольно интригующим. И все же я не сталкивался с утверждениями, что это плохой способ структурировать программу. Кажется, не во многих местах. Даже здесь я не смог найти никаких вопросов по этому поводу. Мой вопрос не о его недостатках или …

3
Шаблон наблюдателя; зная * что * изменилось?
Я создал два абстрактных класса Subject и Observer, которые определяют классический интерфейс шаблонов Observer. Я извлекаю из них реализацию шаблона Observer. Наблюдатель может выглядеть так: void MyClass::Update(Subject *subject) { if(subject == myService_) { DoSomething(); } else if(subject == myOtherService_) { DoSomethingElse(); } } Это хорошо, и это говорит мне, кто …

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

2
Какие шаблоны проектирования GOF уже реализованы как первоклассные языковые функции в C #?
(Этот вопрос был закрыт из-за переполнения стека из-за того, что он «слишком широкий» и «не настоящий вопрос», так что, может быть, он более уместен здесь?) Вдохновлен этим вопросом . Мы знаем, что события - это реализация шаблона Observer на уровне языка. Существуют ли другие шаблоны проектирования, реализованные как языковые функции …

9
Как вы должны объяснять шаблоны проектирования людям за пределами мира программного обеспечения
Я хочу объяснить шаблон дизайна моей племяннице, но всегда борюсь за это. Во многом это связано с отсутствием у меня четкого понимания шаблонов проектирования. Как вы предлагаете объяснять шаблоны, такие как MVC, Singleton, Factory, Repository и т. Д., В таких простых терминах, которые могут понять даже дети 10 лет. Я …

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