Java-дизайн для ресурсов с ResourceTypes

Я работаю над приложением для управления задачами, которое использует ResourceManager для управления всеми резервированиями различных ресурсов, каждый со своим ResourceType. На данный момент существует 5 видов ResourceTypes, и они не будут регулярно меняться, но это может произойти.

Мой вопрос заключается в том, как лучше всего подойти к дизайну для этого с точки зрения ОО-дизайна, принципов GRASP и общей возможности сопровождения кода:

  • Вариант A: отдельные классы Resource и ResourceType + класс ResourceManager сохранят несколько карт ресурсов для каждого типа ресурса

  • Вариант B: отдельный класс Resource + ResourceType class будет содержать список соответствующих ему ресурсов.

Мне кажется, что с вариантом B будет более высокая сплоченность в отношении ресурсов и их типов, но я ищу определенные сценарии (рефакторинг), в которых один вариант окажется лучше другого?

1 ответ

Решение

Это позволило бы представлять типы в виде классов и добавлять их во время выполнения.

Вы также можете иметь ResourceFactory, которая решает, какой ресурс сделать во время выполнения. Затем вы можете использовать фабрику, чтобы получить объект ресурса для передачи в addResource().

Преимущество этого дизайна в том, что ResourceManager отделен от конкретных типов ресурсов, которыми он управляет. Чтобы добавить новый тип ресурса, просто добавьте новый класс и обновите фабричный класс.

Другие вопросы по тегам