Подтвердить что ты не робот

Упражнения для этюдов/кодов OOD/OOP

Я искал в Интернете какое-то время. Я ищу небольшие примеры упражнений для практики OOD (& для некоторых внутренних семинаров TDD).
Если есть одно место, где эта потребность подается, пожалуйста, укажите мне это.. и закройте этот вопрос

Ограничения:

  • Язык-агностическая проблема реального мира
  • Маленький: что-то, что требуется от часа до двух в макс, чтобы решить (или имеет подчасти, которые могут соответствовать этому ограничению).
  • Не сглаженный алгоритм: не следует сосредоточиться на решении вычислительной задачи. (Есть несколько сайтов, которые обслуживают эту категорию.) Привлекайте > 2 взаимодействующих объекта.
  • Решено несколькими людьми, желательно сами: доброта проверена. Ссылки предпочтительны. Пожалуйста, не публикуйте то, что может быть хорошим упражнением... субъективным

Аналогичный вопрос SO 60109, но ответы не соответствуют моей потребности здесь. Я обнаружил, что я потерял мое прикосновение (обманывал идеи) с помощью OOD после длительного контакта с дневной работой. Нужно вернуть его.

Обновление: Собираемся ли мы из коротких упражнений ООП? Я надеялся, что у меня будет куча. Однако мои веб-поиски (это упражнение по разложению при формулировании правильной строки поиска), и отсутствие ответов здесь, похоже, указывает на другое. Возможно, я отправился в SO в плохое время.. в этом случае наткнулся на эту тему для получения дополнительных ответов.

4b9b3361

Ответ 2

Jeff Bay Object Calisthenics. После этого улучшатся ваши навыки OO.

Ответ 5

Дейв Томас CodeKata

Доброта,

Dan

Ответ 6

Из книги AGPPnP от Robert Martin aka UncleBob
CoffeeMaker Mark IV - Страница 2 содержит описание проблемы

Ответ 7

Практическая проблема вопросника

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

Вы можете начать думать о том, как структурировать Survey. Это, очевидно, состоит из Questions, но вы также хотите Categories? Может ли Question иметь подзапросы? Может ли подзапрос иметь подзапросы? Как глубоко вы можете идти?

Вопрос, вероятно, должен иметь потенциал Scores. Какие типы баллов у вас есть? Какие типы вопросов вы можете иметь (множественный выбор, множественный ответ, freetext и т.д.)?

Как только вы получите базовую бизнес-логику, вы также можете подумать о том, как вы показываете опрос. Может быть, у вас есть SurveyRenderer и QuestionRenderer? Как вы решаете, как обрабатывать разные типы вопросов? (Возможно, вы используете шаблон стратегии... как в этот вопрос SO). Как вы можете сделать версию опроса только для чтения?

Вы также можете думать о настойчивости. Как вы записываете ответы на пустой вопросник? Как ваш объектный граф опроса попадает в базу данных (или в другое хранилище) и наоборот?