Package epidemic.factory
Class AgentFactory
java.lang.Object
epidemic.factory.AgentFactory
Fabryka odpowiedzialna za spójne tworzenie instancji agentów (wzorzec Abstract Factory).
Zapewnia scentralizowane miejsce inicjalizacji parametrów początkowych, takich jak wiek,
prędkość bazowa, przypisanie strategii ruchu czy losowanie unikalnej osobowości.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAgentFactory(PersonalityFactory personalityFactory) Inicjalizuje fabrykę agentów. -
Method Summary
Modifier and TypeMethodDescriptioncreateAnimal(Point2D pos, int age, double baseSpeed, SpeciesType type, MovementStrategy strategy) Tworzy nowego agenta zwierzęcego określonego gatunku.private AnimalcreateAnimalOffspring(Point2D pos, SpeciesType type, Animal a, MovementStrategy strategy) createHuman(Point2D pos, int age, double baseSpeed, Personality personality, MovementStrategy strategy) Tworzy nowego ludzkiego agenta z pełnym profilem psychologicznym.private HumancreateHumanOffspring(Point2D pos, Human a, Human b, MovementStrategy strategy) createOffspring(Agent parentA, Agent parentB) Rozwiązuje logikę dziedziczenia i tworzy potomka dla podanej pary agentów.
-
Field Details
-
personalityFactory
-
-
Constructor Details
-
AgentFactory
Inicjalizuje fabrykę agentów.- Parameters:
personalityFactory- Fabryka dostarczająca profile psychologiczne dla nowo tworzonych ludzi.
-
-
Method Details
-
createHuman
public Human createHuman(Point2D pos, int age, double baseSpeed, Personality personality, MovementStrategy strategy) Tworzy nowego ludzkiego agenta z pełnym profilem psychologicznym.- Parameters:
pos- Pozycja startowa na mapie.age- Początkowy wiek agenta.baseSpeed- Bazowa prędkość poruszania się.personality- Profil osobowości decydujący o reakcjach agenta na zagrożenie.strategy- Domyślna strategia poruszania się w stanie spokoju.- Returns:
- Gotowa do dodania na mapę instancja Human.
-
createAnimal
public Animal createAnimal(Point2D pos, int age, double baseSpeed, SpeciesType type, MovementStrategy strategy) Tworzy nowego agenta zwierzęcego określonego gatunku.- Parameters:
pos- Pozycja startowa na mapie.age- Początkowy wiek zwierzęcia.baseSpeed- Bazowa prędkość poruszania się.type- Konkretny gatunek zwierzęcia (np. BAT, RAT, DOG).strategy- Domyślna strategia poruszania się w stanie spokoju.- Returns:
- Gotowa do dodania na mapę instancja Animal.
-
createOffspring
Rozwiązuje logikę dziedziczenia i tworzy potomka dla podanej pary agentów. Metoda polimorficzna – deleguje tworzenie do odpowiednich podmetod w zależności od typu rodziców (Human/Animal).- Parameters:
parentA- Pierwszy rodzic biorący udział w rozrodzie.parentB- Drugi rodzic biorący udział w rozrodzie.- Returns:
- Nowy agent z parametrami odziedziczonymi po rodzicach.
- Throws:
IllegalArgumentException- Jeśli gatunki rodziców są niezgodne.
-
createHumanOffspring
-
createAnimalOffspring
private Animal createAnimalOffspring(Point2D pos, SpeciesType type, Animal a, MovementStrategy strategy)
-