Felix Riesterer: Forum für C#-Fragen bzw. Tipps für Objekt-Typfragen

Beitrag lesen

Liebe Mitlesende,

aktuell übe ich mich unter Mono damit ab, ein Programm zu schreiben, das sowohl rein auf der Konsole, als auch mit einem Fenster (GUI) genutzt werden kann. Dazu habe ich drei Klassen definiert, eine für die reine Progammlogik (sozusagen "Backend"), eine für die Benutzerinteraktion rein auf der Konsole und eine für den Fensterbetrieb.

Wie kann ich in meinem Backend eine Referenz auf die beiden UI-Klassen ablegen, sodass ich nicht in verschiedenen Funktionen prüfen muss, ob das jetzt an das Konsolen-UI-Objekt, oder an das GUI-Objekt gehen muss, die beide diverse Methoden bieten (gleiche Methodennamen und Parameter-Listen, sozusagen eine API)? Ich möchte etwas in der Art:

[Pseudocode]~~~ class Master {
    ConsoleUI MyConsole;
    WindowUI  MyWindow;
    MasterUI  MyUI;

public void Main () {
        if (schlechteLaune) {
            // heute eine Konsole
            this.MyUI = new ConsoleUI();
        } else {
            // heute ein Fenster
            this.MyUI = new WindowUI();
        }
    }
}

  
Es ist offensichtlich, dass oben drei ganz verschiedene Datentypen definiert werden (ConsoleUI, WindowUI und MasterUI). In MasterUI hätte ich jetzt gerne ein Objekt entweder vom Typ ConsoleUI oder WindowUI, damit ich mit MasterUI.Setup() die Setup-Methode egal von der Konsolenausgabe oder dem Fenster aufrufen kann.  
  
Wie kann ich soetwas "kapseln"?  
  
Wo finde ich ein ähnlich potentes Forum wie das SELFHTML-Forum, nur eben für C#-Fragen?  
  
Liebe Grüße,  
  
Felix Riesterer.

-- 
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)