PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Architekturfrage in c++


SynchroM
2004-11-18, 15:17:20
sers ersma.
Ich brauche so was wie 'n Architekturtipp ala "wie machen dass die Profis?"
AAAAlso: ich will eine Funktionale Klasse programmieren, welche die Arbeit für eine Form-Klasse macht, welche für das GUI da ist. Der Sinn ist halt eine Entkoppelung, so dass man die Funktionale Klasse später auch für ein anderes Prog benutzen kann. Und an dieser Stelle stoße ich schon wieder auf das selbe Problem:
Wie kann ich von der Funktionalen Klasse Meldungen rausgeben?
ein */textbox1.SetText("blabla");/* geht nicht, weil dann währe ich ja vom Form abhängig.
Wenn’s nur eine Meldung währe würde ich halt 'n String returnen. Aber ich will andauernd was rausschmeißen.
Unter Unix könnte ich die stdout umleiten aber das wird 'n Windows Programm.
Hab mir überlegt. ich könnte ein Feld beschreiben und ein Signal schicken, wenn wieder was neues drinsteht.
Wie würdet ihr das machen?

ScottManDeath
2004-11-18, 17:22:52
Hab nicht viel Zeit :(, aber:

Stichwort "Observer Pattern" (oder Document View oder Model View Controler)


Deine "Funktionale Klasse" enthält all die Daten. Wenn sich an den Daten etwas ändert, teilt das die "Funktionale Klasse" allen anderen Observer Objekten mit, die sich zuvor bei der "Funktionale Klasse" registriert haben.

Diese Observer kannst du als Form implementieren, die das Observer Interface implementiert und z.b. eine "OnDocumentTitleChange" Methode hat. Diese setzt dann den Text der Editbox.


Das in aller Kürze, mehr dazu bei google nach den Stichworten.

beta3
2004-11-18, 19:47:43
wenn du .Net verwendest, kannst du auch Events benutzen ;)

Gast
2004-11-18, 20:59:17
wenn du .Net verwendest, kannst du auch Events benutzen ;)

Du kannst dir auch selber so ein kleines Event-System programmieren, is kein großer aufwand.

Jesus
2004-11-19, 18:19:02
Unter Unix könnte ich die stdout umleiten aber das wird 'n Windows Programm.

du kannst die stdout/in/err auch unter Windows umleiten

SynchroM
2004-11-23, 23:11:14
So, hab jetzt mal ein paar Sachen nachgegoogled und ausgetestet...
Werd aber glaub lieber beim Erzeugen 'nen Zeiger auf 'ne Methode übergeben welche in der GUI-Kalsse sitzt, und Meldungen raushauen kann.
Wenni ch mal besser bin (also nie) werd ich inovativere Lösungen austesten.

Chris Lux
2004-11-24, 07:46:36
sers ersma.
[...]

hi, n tipp ist da immer mal bei www.boost.org vorbeizuschauen. dort würde ich sagen passen signals&slots sehr gut zu deinem problem. deine funktionale klasse kann so ein signal senden, wenn sie ihren zustand ändert und jegliche andere klassen können sich für dieses signal registrieren und bekommen so von den zustandsänderungen bescheid.

HTH