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

Вопросы о решении проблем и планировании решения посредством разработки программного обеспечения.

5
Лучшая стратегия для сообщения о прогрессе в UI - как должен происходить обратный вызов?
Иногда пользователь запускает расширенную техническую операцию, выполнение которой занимает некоторое время. В этих случаях обычно удобно отображать какой-то индикатор выполнения вместе с информацией о том, какая задача выполняется в данный момент. Чтобы избежать тесной связи между пользовательским интерфейсом и уровнями логики, обычно лучше, чтобы связь происходила через какой-то тип прокси. …

2
Классы Python только с одним экземпляром: когда создавать (один) экземпляр класса и когда вместо этого работать с классом?
Данный класс Python, который будет создан только один раз, то есть будет только один объект класса. Мне было интересно, в каких случаях имеет смысл создавать отдельный экземпляр класса, а не работать непосредственно с классом. Есть похожий вопрос , но он имеет другую направленность: речь идет о группировании глобальных переменных и …

1
Эффективный способ представления гексагональной настольной логики для игр типа ушка
Мне нужно реализовать AI для игры Abalone, и мне интересно, как лучше представить логику платы с помощью Java, не тратя слишком много ресурсов на все процедуры проверки и обновления. Лучше всего использовать различные списки? Матрица объектов Cell? Любое предложение?

5
Должен ли я всегда полностью инкапсулировать внутреннюю структуру данных?
Пожалуйста, рассмотрите этот класс: class ClassA{ private Thing[] things; // stores data // stuff omitted public Thing[] getThings(){ return things; } } Этот класс предоставляет массив, который он использует для хранения данных, любому клиентскому коду. Я сделал это в приложении, над которым я работаю. У меня был ChordProgressionкласс, который хранит …

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

5
Должен ли я использовать абстрактные или виртуальные методы?
Если мы предположим, что нежелательно, чтобы базовый класс был чистым интерфейсным классом, и с помощью 2 примеров, приведенных ниже, что является лучшим подходом, используя определение класса абстрактного или виртуального метода? Преимущество «абстрактной» версии состоит в том, что она, вероятно, выглядит чище и заставляет производный класс давать многообещающую осмысленную реализацию. Преимущество …
11 c#  design 

4
Командный дизайн
У меня есть эта старая реализация шаблона Command. Это своего рода передача контекста через всю реализацию DIOperation , но позже я понял, что в процессе обучения и обучения (что никогда не останавливается) это не оптимально. Я также думаю, что «посещение» здесь не совсем подходит и просто сбивает с толку. Я …

3
Использование бизнес-объектов в моделях представления
При использовании бизнес-объектов многократного использования, что считается наилучшей практикой при построении моделей представлений? Мы используем объект, который мы вызываем, Builderдля построения наших моделей представлений. Один конструктор для каждой логической единицы представлений (заказов, пользователей и т. Д.), Где каждая единица может содержать несколько различных моделей представлений (заказы содержат сводку, строки заказа …

3
«Насколько плох» несвязанный код в блоке try-catch-finally?
Это связано с Q: Является ли использование оператора finally для выполнения работы после возврата плохим стилем / опасным? В ссылочной версии Q код finally связан с используемой структурой и необходимостью предварительной выборки. Мой вопрос немного другой, и я считаю, что он уместен для широкой аудитории. Мой конкретный пример - приложение …

4
Термин «интерфейс» в C ++
Ява проводит четкое различие между classи interface. (Я верю, что C # тоже, но у меня нет опыта с этим). Однако при написании C ++ не существует языкового различия между классом и интерфейсом. Следовательно, я всегда рассматривал интерфейс как обходной путь для отсутствия множественного наследования в Java. Делать такое различие …

5
Написание тестируемого кода против предотвращения спекулятивной общности
Этим утром я читал несколько постов в блоге и наткнулся на это : Если единственным классом, который когда-либо реализует интерфейс Customer, является CustomerImpl, у вас нет полиморфизма и заменяемости, потому что на практике нет ничего, что можно заменить во время выполнения. Это поддельная общность. Это имеет смысл для меня, поскольку …

3
Подход к функциональному программированию для упрощенной игры с использованием Scala и LWJGL
Я, императивный программист на Java, хотел бы понять, как создать простую версию Space Invaders, основанную на принципах проектирования функционального программирования (в частности, ссылочной прозрачности). Однако каждый раз, когда я пытаюсь придумать дизайн, я теряюсь в муре чрезвычайной изменчивости, той же изменчивости, которой избегают пуристы функционального программирования. В качестве попытки освоить …

6
Борьба с принципом единой ответственности
Рассмотрим этот пример: У меня есть сайт. Это позволяет пользователям создавать сообщения (может быть что угодно) и добавлять теги, которые описывают сообщение. В коде у меня есть два класса, которые представляют пост и теги. Давайте назовем эти классы Postи Tag. Postзаботится о создании сообщений, удалении сообщений, обновлении сообщений и т. …

8
Что вы делаете, если попадаете в тупик разработки в таких эволюционных методах, как Agile или XP?
Когда я читал знаменитое сообщение в блоге Мартина Фаулера Is Design Dead? Одно из поразительных впечатлений, которые я получил, заключается в том, что, учитывая тот факт, что в Agile Methodology and Extreme Programming дизайн, а также программирование эволюционируют, всегда есть точки, в которых необходимо провести рефакторинг. Может случиться так, что, …
11 design  agile 

1
Взаимодействие рисования потока
Я хотел бы нарисовать (пером и карандашом) взаимодействие нитей в UML-нотации. Я не настаиваю на UML, что должно сделать читатель. Я начал с диаграмм последовательности, но я не чувствую, что это лучший способ сделать это. Все время, были бы «инициаторы действия», приходящие из-за экрана, которые как бы ломали идею SSD. …

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