Web- und Software Development

Praktische Muster – Commands

Written By: Mario Priebe - Jan• 22•10

Ein schönes Beispiel für ein praktisches Entwurfsmuster habe ich im Archiv der dot.net gefunden.

In der Ausgabe 1/2009 beschreibt Marc André Zhou mit einem einfachen Beispiel, wie man ein Muster für Commands implementiert.

Hierzu definiert er ein Interface ICommand, welches die Methode Execute() festlegt.

1
2
3
4
public interface ICommand
{
    void Execute();
}

Die Klassen, die das Interface implementieren, öffnen jeweils eine Applikation

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class CMDNotepad : ICommand
{
    public void Execute()
    {
        Process process = new Process();
        process.StartInfo = new ProcessStartInfo(@"notepad.exe");
        process.Start();
    }
 
    public override string ToString()
    {
        return "notepad.exe";
    }
}

Im MainProgramm dann, werden die einzelnen Commands einer Liste vom Typ ICommand hinzugefügt

1
2
3
4
var commands = new List<ICommand>();
commands.Add(new CMDNotepad());
commands.Add(new CMDIExplorer());
commands.Add(new CMDCalc());

und anschliessend ausgegeben.

1
2
3
4
5
foreach (ICommand cmd in commands)
{
    Console.WriteLine("Start command: {0}", cmd);
    cmd.Execute();
}

Ich finde das Beispiel auch als eine sehr gute Erklärung, wie ein Interface arbeitet und an welcher Stelle man eins einsetzen sollte.

Viel Spass beim entwickeln : )

Ähnliche Beiträge

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.