OO oder DesignPattern für folgendes?
-
Hallo,
ich habe noch nicht viel objektorientiert gearbeitet und würde gerne deshalb ein paar Meinungen/Ideen einholen ob meine Problemstellung irgendwie elegant objektorientiert oder mit DesignPatterns gelöst werden kann:
Ich habe eine Methode kommunizieren() die mir überprüft ob ein wert vorliegt. Falls ja wird ein switch ausgeführt der eine spezielle methode aufruft.
Diese Methode kommunizieren() wird immer dann ausgeführt wenn es sein kann das 2 Prozesse miteinander kommunizieren sollen. Das kann z.B. in einer for-schleife stehen oder auch nicht.
Gerade dieses weiterleiten also der switch - könnte man das irgendwie eleganter lösen?
Danke
-
Troll
-
Musste bisschen schmunzeln.
-
Sehr witzig - das ist kein Troll sondern eine ernsthafte Frage...braucht ihr irgendwie mehr Information oder so?
-
Moment. Du behauptest du Trollst nicht?Dann erklär mir mal den Untschied zwischen OOP und Designpattern?
-
*grmpf
Sorry war eine blöde Aussage, ich hätte eher in die richtung was sagen sollen mit Klassenbildung und Design Patterns. Klar ists dasselbe. ALso nochmal - das ist kein Trollversuch.
-
Gib uns einfach mal ein paar mehr Informationen. Dabei geht es weniger um bestehende Implementierungsdetails, sondern mehr darum, was Du erreichen willst.
Wenn es grundsätzlich um OOD und Design Patterns geht, wäre das hier vermutlich auch besser unter "Rund um die Programmierung" aufgehoben.
-
Antwort auf die Frage:
Klar, du könntest z.B. alle speziellen Methoden in eine Map packen und dann die Methode mit dem entsprechenden Wert aus der Map holen. Dann hast Du kein switch mehr.
-
Klar, du könntest z.B. alle speziellen Methoden in eine Map packen und dann die Methode mit dem entsprechenden Wert aus der Map holen. Dann hast Du kein switch mehr.
Hmm - wie pack ich denn Methoden in eine Map? Über Function-Pointer? Oder wie?
-
Jap jenau, Funktionspointer + string für den namen oder ein int als identifikation.
-
Falls man einen eingeschränkten Wertebereich hat, zum Beispiel ein
enum
, dessen Konstanten schön nacheinander liegen und bei 0 beginnen, kann man auch ein Array (z.B.std::tr1::array
) einsetzen und hat O(1) für den Zugriff.