Как спроектировать проблему ассоциации ресурсов в Java - PullRequest
0 голосов
/ 02 ноября 2010

У меня есть следующая проблема моделирования:

. В качестве упражнения мне нужно смоделировать систему, которая распределяет подразделения (полицейские машины / пожарные машины) по конкретной чрезвычайной ситуации (пожар / грабеж / ...).Поэтому в аварийной ситуации необходимо указать, сколько единиц ей нужно (например, 2 пожарные машины и 3 машины скорой помощи).Конечно, эти подразделения должны быть отнесены к этой чрезвычайной ситуации.Я смоделировал это как два абстрактных класса: Emergency и Unit с реальными единицами и аварийными ситуациями, которые наследуют эти классы.

Существует ли элегантный дизайн, чтобы аварийная ситуация могла определить в общем виде, какие единицы ей нужнытипы единиц и ожидаемые аварийные ситуации)?

Язык программирования - Java.

Я знаю, что это, вероятно, один из стандартных шаблонов проектирования, но я довольно новичок в этих шаблонах проектирования.

Ответы [ 2 ]

1 голос
/ 02 ноября 2010

У вас есть много вариантов с этим.Некоторые из моделей, которые приходят на ум, это Наблюдатель, Цепочка ответственности и Посетитель.Однако многие решения, не связанные с шаблонами, также кажутся разумными.Не загипнотизируйте использование шаблонов все время.

При этом комбинация шаблонов, вероятно, будет лучшим решением.Создайте класс более высокого уровня, своего рода директора.Разрешить Директору наблюдать за Чрезвычайными ситуациями, используя шаблон Observer.Когда Директор получает запрос на работу, он переходит к Пулу объектов и изменяет Чрезвычайную ситуацию, как ему удобно.

0 голосов
/ 02 ноября 2010

Как насчет хорошего старого интерфейса Java?

public interface HasEmergency {
    public UnitType responderUnit();
    public int numberOfUnitsNeeded();
}

public abstract class Resource implements HasEmergency {
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...