Auswahl aus verschiedenen Algorithmen!!??
-
Hallo ihr,
ich habe eine "Berechenung" Klasse, welche exteren Daten bearbeitet.
Nun hab ich aber verscheiden möglichkeiten diese Daten zu berechnen, bzw. verscheiden Algorithmen?die Algorithmen bestehen aus mehrern Methoden in der "Berechnungs" klasse!
Problem:
Wie könnte ich am besten die Zusammengehörigerk der verschieden Algorithmen gruppieren, da ja die Algorithen aus merhen methoden bestehen, und auch auf
verscheiden grundlegende Methoden der Berechungsklasse zugreifen!Würde ihr mir empfehlen eine neue Klasse Pro algorithmus zu schreibern welche als unterklassen der BErechnugns Klasse definiert sind??
Grüße
P.S. Hoffe ihr versteht meine Problematik:)
-
wennich dich rihtig verstnaden hab, würd ich sowas machen:
class Berechner { public: void Berechne(Daten* daten) = 0; }; class Berechner1 : public Berechner { public: viod Berechne(Daten* daten) { // mach was mit Daten }; }; class Berechner2 : public Berechner { public: viod Berechne(Daten* daten) { // mach was anderes mit Daten }; }; class Daten { public: void SetBerechner(Berechner* b) { m_Berechner = b; }; void Berechne() { m_Berechner->Berechne(this); }; private: Berechner* m_Berechner; }; int main() { Daten d; // d füllen d.SetBerechner(new Berechner1); d.Berechne(); return 0; }also eine Basisklasse Berechner, welche die Methode Berechne stellt. Implementiert wird diese Methode auf verschiedene Weise in den abgeleiteten Klassen
-
Dein Berechnen musst doch irgendwie anstossen oder ?
Dazu machst nen interface,
mehrere (berechnungs-)klassen die dieses interface bedienen,
dein "arbeitgeber" arbeitet mit der datenklasse(evtl auch interface) und (nur) dem berechnungs interface,
irgend nen manager managed dir halt(usereingabe ?), welches Object erzeugt wird und die berechnungsschnittstelle bedient.Also quasi das was maxi schoen in code ausgedrueckt hat ^^ mit Professionelleren Namen natuerlich wie ICalculator, Method1CalculatorImpl .... ^^
Schau dir "interfaces"(pure abstract class) an und vor allem das prinzip was dahinter steckt.
Darauf bauen z.b. die ganzen design patterns auf ...Ciao ...
-
ok danke... schon mal paar gute Denkrichtungen;)