Class PersonalityFactory

java.lang.Object
epidemic.factory.PersonalityFactory

public class PersonalityFactory extends Object
Fabryka odpowiedzialna za kreowanie osobowości (strategii decyzyjnych) agentów. Centralizuje logikę losowania cech na podstawie proporcji zdefiniowanych w globalnej konfiguracji.
  • Field Details

  • Constructor Details

    • PersonalityFactory

      public PersonalityFactory(MovementStrategy seekHospital, MovementStrategy distancing, MovementStrategy normalMove, MovementStrategy seekMate, MovementStrategy maliciousPursuit)
      Inicjalizuje fabrykę z zestawem bazowych strategii poruszania się. Współdzielenie instancji strategii przez wszystkich agentów (wzorzec Pyłek / Flyweight) znacząco optymalizuje zużycie pamięci operacyjnej.
      Parameters:
      seekHospital - Strategia udania się do placówki medycznej.
      distancing - Strategia zachowania dystansu społecznego i unikania tłumów.
      normalMove - Strategia standardowego poruszania się (np. błądzenie losowe).
      seekMate - Strategia poszukiwania partnera do rozrodu.
      maliciousPursuit - Strategia celowego podążania za ofiarami w celu ich zarażenia.
  • Method Details

    • generateRandomPersonality

      public Personality generateRandomPersonality()
      Generuje nową osobowość bazując na rozkładzie prawdopodobieństwa z pliku Config.

      Metoda uwzględnia parametry human.rationalRatio oraz human.panickedRatio. Agenci niełapiący się w powyższe pule domyślnie otrzymują zachowanie mściwe (Vindictive).

      Returns:
      Nowa instancja Personality z odpowiednio przypisaną strategią decyzyjną.