Chce zrobić system zdarzeń w jakimś programie ale jak zrobić coś takiego bo nie mam pomysłu w głowie żeby też nie bylo w kodzie jakiegoś syfu ifow itp.
Mam trzy klasy Car, AutoPilot, Kierowca
Przykład klasy Car
class Car {
public void openDoor() {
// Otwieranie drzwi
// Odpalaj zdarzenie eventManagerem
eventManager.callEvent(DoorOpenedEvent); // i odpali się zdarzenie ze dzwi zostało otwarte ale w zależności od tego kto wylała te metodę jaka jakaś jest inna implementacja
}
}
class AutoPilot {
public void start() {
car.openDoor(); //dzwi otwiera klasa AutoPilot więc DoorOpenedEvent ma mieć implementację dla klasy AutoPilot
}
}
class Kierowca {
public void start() {
car.openDoor(); // dzwi otwiera klasa Kierowca więc DoorOpenedEvent ma mieć implementację dla klasy Kierowca
// Mogę niby przekazać parametrem klasę ale to na czy dobre podejście car.openDoor(this) bo bym musiał ify robić tam kto wywołuje
}
}
teraz mam problem jak to zaprojektować żeby nie było brzydkich ifow Itp. Nie chcę też zbytnio przekazywać parametrem do openDoor()
instancji klasy która to wywołuje bo znowu muszę tam ifowac nw ogólnie jak to rozplanować żeby nie było burdelu w kodzie. Ktoś ma jakiś pomysł jak najlepiej stworzyć szkielet czegoś takiego