Objektorientierte Programmierung: Teil 4 – Strategie, wechsel Dich!
Klassenaufteilung
Klasse:IStrategyContextBenötigt:- –
Verantwort.:- Interface für Nutzer von Strategien, um neue Strategien zu setzen
Klasse:BaseStrategyBenötigt:IStrategyContextVerantwort.:- Basisklasse für die konkreten Strategien, um ein Angebot anzunehmen oder abzulehnen.
Merkt sich den Kontext, in dem es benutzt wird.
Hinweis: Hier muss man aufpassen, dass es nicht zu einer zyklischen Abhängigkeit kommt. Da IStrategyContex aber nur ein Interface ist, muss es nicht BaseStrategy selbst, sondern nur den Namen kennen.
Klasse:AcceptStrategyBasisklasse:BaseStrategyBenötigt:- –
Verantwort.:- nimmt ein Angebot immer an
Klasse:DeclineStrategyBasisklasse:BaseStrategyBenötigt:- –
Verantwort.:- lehnt ein Angebot immer ab
Klasse:VariableStrategyBasisklasse:BaseStrategyBenötigt:StrategyFactory,IStrategyContexVerantwort.:- entscheidet variabel, ob ein Angebot abgelehnt oder angenommen wird
Klasse:StrategyFactoryBenötigt:BaseStrategyVerantwort.:- lässt neue Strategien anmelden und erstellt diese auf Zuruf
Klasse:BotBasisklasse:IStrategyContexBenötigt:- BaseStrategy
Verantwort.:- zählt die angenommenen Punkte
Klasse:GameBenötigt:StrategyFactory,BotVerantwort.:- erstellt den Bot und setzt die von der Fabrik erzeugte Strategie;
liest die Benutzereingabe und fragt Bot nach Annahme oder Ablehnung


