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

12
Улучшения в шаблоне дизайна Джошуа Блоха?

Еще в 2007 году я прочитал статью о том, как Джошуа Блохс рассматривает «шаблон строителя» и как его можно изменить, чтобы улучшить чрезмерное использование конструкторов и сеттеров, особенно когда объект имеет большое количество свойств, большинство из которых являются необязательными. Краткое...

12
Как вы подходите к дизайну классов в ООП?

Когда я пытаюсь разработать OO-решение, я обычно использую моделирование CRC, в котором я перечисляю имена классов (существительные), что они делают (глаголы) и как они взаимодействуют с другими классами. Этот блог имеет следующее, что можно сказать об этом подходе существительное-глагол ...This...

12
Какова хорошая практика кода, когда создавать функцию / метод для небольших повторяющихся сегментов кода?

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

12
Лучшие практики для использования публичного, защищенного, частного?

Справедливо ли говорить, что privateпри кодировании чего-либо является хорошей практикой по умолчанию все по умолчанию ? А затем обновите его только до того момента, protectedкогда это потребуется подклассу, или publicесли это понадобится другому...

12
Насколько «простым» является настоящее решение KISS? [закрыто]

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

12
Использование шаблона посетителя с большой иерархией объектов

контекст Я использовал с иерархией объектов (дерево выражений) «псевдо» шаблон посетителя (псевдо, так как в нем не используется двойная диспетчеризация): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass...

12
Могут ли объекты Persistance-Ignorant реализовать ленивую загрузку?

Постоянное невежество - это применение принципа единой ответственности, который на практике означает, что доменные объекты ( DO ) не должны содержать код, связанный с постоянством, вместо этого они должны содержать только доменную логику. а) Я предполагаю, что это означает, что код, который...

12
Правильный дизайн для класса с одним методом, который может варьироваться между клиентами

У меня есть класс, используемый для обработки платежей клиентов. Все методы этого класса, кроме одного, одинаковы для каждого клиента, за исключением одного, который вычисляет (например), сколько должен пользователь пользователя. Это может сильно варьироваться от клиента к клиенту, и нет простого...

12
Понимание структуры потока

Я на самом деле изучаю структуру потока, и есть кое-что, что я не могу понять относительно магазинов . Что именно они? Я прочитал много статей, и кажется, что это касается области. Означает ли это, что это «абстрактная» часть, относящаяся к вызовам API или серверным вызовам? Это не очень понятно...

12
Итак, «в шаблонах дизайна отсутствуют языковые функции»? [закрыто]

Трудно сказать, что здесь спрашивают. Этот вопрос является двусмысленным, расплывчатым, неполным, чрезмерно широким или риторическим, и на него нельзя дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было снова открыть, посетите справочный...

12
Нужны советы по дизайну

Я разрабатываю приложение, которое будет использоваться для открытия и закрытия клапанов в промышленной среде, и подумывал о чем-то простом, как это: public static void ValveController { public static void OpenValve(string valveName) { // Implementation to open the valve } public static void...

12
Являются ли неизменяемые / не имеющие состояния синглтоны плохими?

В последнее время произошла какая-то революция против синглетонов, но что с ними не так, если они не имеют гражданства? Я знаю разговоры о чрезмерном использовании и все ... это относится ко всему, а не только к одиночкам....

12
Реализация шаблона команды в API RESTful

Я нахожусь в процессе разработки HTTP API, надеюсь, сделать его максимально RESTful. Есть некоторые действия, функциональность которых распространяется на несколько ресурсов, и иногда их нужно отменить. Я подумал, что это звучит как шаблон команды, но как я могу смоделировать его в ресурс? Я...

12
В чем практическая разница между стилями внедрения зависимостей?

Я новичок в внедрении зависимостей, и у меня есть несколько вопросов о том, какой стиль я должен использовать в своих приложениях. Я только что прочитал статью Мартин Фаулер « Инверсия контейнеров управления» и «Шаблон внедрения зависимостей », но не могу понять практической разницы между...

12
Принцип Открытого Закрытия (OCP) против Принципа Инверсии Зависимостей (DIP)

Я пытался понять разницу между Open Closed Principle (OCP) и Dependency Inversion Princible (DIP). Основываясь на исследованиях, которые я провел в Интернете, я пришел к выводу, что «DIP - это один из вариантов, с помощью которого мы можем достичь OCP». Я прав на это? Можете ли вы привести пример,...

12
Как избежать дублирования структур данных, когда части приложения написаны на разных языках?

В качестве примера, скажем, вы пишете приложение на Java . Ваше приложение взаимодействует с сервером API, написанным на Python . Сервер Python связывается с базой данных SQL . У вас также есть веб-сайт для вашего приложения, написанный на JavaScript . С 4 разными языками легко в конечном итоге...

12
Как класс должен сообщить своим пользователям, какое подмножество методов он реализует?

сценарий Веб-приложение определяет интерфейс пользователя IUserBackendс методами GetUser (UID) CreateUser (UID) deleteUser (UID) setPassword (uid, пароль) ... Различные пользовательские бэкэнды (например, LDAP, SQL, ...) реализуют этот интерфейс, но не каждый бэкэнд может делать все. Например,...

12
Глобальный контекст запроса - анти-паттерн?

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

12
Как мне справиться со сбоями регистратора?

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

12
Почему «застежка-молния» игнорирует свисающий хвост коллекции?

C # , Scala, Haskell, Lisp и Python ведут себя одинаково zip: если одна коллекция длиннее, хвост молча игнорируется. Это может быть и исключение, но я не слышал ни о каком языке, использующем этот подход. Это озадачивает меня. Кто-нибудь знает причину, почему так zipзадумано? Я предполагаю, что для...