Das Singleton – Ein Muster zum streiten?

Das Singleton soll sicher stellen, das es von einer Klasse zur Programmlaufzeit nur eine Instanz gibt. Ich persönlich nutze es zum Beispiel als Fehlerprotokollobjekt oder um eine Datenbankverbindung vorrätig zu halten.

Manche Entwickler sind der Meinung, das das Singleton schlechter Programmierstil sei, ein Hinweis auf Designschwächen. Ich sehe das anders. Es gibt nun mal manchmal die Notwendigkeit, dass man nur eine Instanz von einem Objekt haben darf. Wenn dem so ist, dann ist dass Singleton die beste Lösung.

Der grundsätzliche Lösungsansatz ist folgender:
Continue reading

Der Iterator

Das Iterator-Muster ermöglicht dem Client über eine Datenstruktur zu gehen (zu iterieren) ohne dass der Klient wissen muss wie sich diese Datenstruktur aufbaut. Das bedeutet ich habe eine Schnittstelle über die ich auf die Daten zugreife und dem Client kann es egal sein, ob die Daten in einem Array, einer List oder wie auch immer vorliegen.
Meistens habe ich es mit Objekten zu tun, welche ich in einer TList verwalte. Zum Beispiel innerhalb eines Kompositums. Wenn nun mein Client damit was machen will (z. B. alle Artikel einer Rezeptur im Formular auflisten) erstellt das Kompositum einen Iteratur mit dessen Hilfe das Formular dann die Artikel auflisten kann.

Continue reading

Das Kompositum

Immer wenn sich etwas in einer Baumstruktur darstellen lässt, wird es Zeit über das Kompositum-Muster nachzudenken.

Wenn ich mir zum Beispiel eine Rezeptur anschaue, so besteht die aus Baugruppen (Gewürz, Soße, Panade). Diese Baugruppen bestehen aus Artikeln (Salz, Wasser, Mehl) und/oder weiteren Baugruppen (Curry, Pfeffermischung). Nun soll es möglich sein Operationen auf Teile dieser Rezeptur oder auf das Ganze anzuwenden (Gib mir dein Gewicht, Gib mir deinen Wareneinsatz).

Continue reading