OOP Frage: Methoden nur bei bestimmten Gegebenheiten aufrufbar machen?

skuki

Aktives Mitglied
Hallo,

habe eine Aufgabe in OOP bei der ich ins Grübeln komme.

Wir haben verschiedene Artikel die man verleihen kann und bei denen sich der Zustand ändert. Den Zustand selbst haben wir als enum gelöst.

Jetzt ein verwirrender Satz:

HTML:
Je nach Produkt wird bereits bei der Erstellung des Objekts eine maximale Anzahl an Verleihungen festgelegt, die nicht überschritten werden darf. Folgende Methoden sind nur in benutztem Zustand aufrufbar: Die Methode void service() sollte spätestens nach jeder dritten Retournierung aufgerufen werden. Die Methode kontrolle() gibt beeinflusst durch Zufall true oder false zurück, aber true darf nur zurückgegeben werden, wenn die maximale Anzahl an Verleihungen noch nicht überschritten und spätestens nach jeweils drei Verleihungen zuvor service() aufgerufen wurde.

Ich denke man muss z.B die Methode service() immer aufrufen können. In dieser muss dann kontrolliert werden ob er gerade als "benutzt" deklariert ist oder nicht. Ansonsten wird einfach null retourniert. Stimmt das? Oder gibt es hier Spezialitäten im Themengebiet Untertypenbeziehungen und Vererbung die ich einfach nicht kenne :rtfm:

Vielen Dank!
 
Nein du solltest vor dem Aufruf der Methode "serivce()" prüfen ob der Artikel benutzt wird.
Weil laut deiner Definition darf "service()" nur aufgerufen werden wenn der Artikel benutzt wird.
 
  • "Methode .service sollte spätestens nach jeder dritten Retournierung aufgerufen werden" - d.h. es muss wohl eine Methode .retournieren() geben, die (am Ende) prüft, ob der letzte .service() >2 Leihen zurückliegt, falls ja, .service() aufruft. Anscheinend darf .service() durchaus auch "außer der Reihe" aufgerufen werden, wenn jemand "von außen" das als notwendig erachtet.
  • Zu .kontrolle() hast du keine (konkrete) Frage gestellt.
 

Zurück
Oben