Archive for Juni, 2011
Design Patterns – Facade
Die Fassade (Facade) dient dazu, ein einheitliches Interface zu einer Menge von Interfaces eines Subsystems bereit zu stellen. Dadurch wird die Komplexität aus dem Subsystem herausgenommen und die Benutzung vereinfacht. Die Interfaces des Subystems können auch weiter seperat genutzt werden. Die Fassade ist das wohl häufigste Entwurfsmuster, mindestens was die Benutzung betrifft. Wie oft habe ...Read more.
Design Patterns – Adapter
Das Adapter Pattern dient dazu, eine Klasse (Adaptee) wieder zu verwenden, indem man sie mittels eines Adapters zu einem von einer Anwendung geforderten Interface (Target) kompatibel macht. Dabei hat der Adapter in der objektorientierten Programmierung genau die selbe Bedeutung wie der Adapter im Alltag. Z.B. passt mein deutscher Rasierer prima in eine deutsche Steckdose. Genauso ...Read more.
Design Patterns – Command
Das Command-Pattern dient dazu, einen Aufruf in einem Objekt zu verpacken. Aufrufer können so zur Laufzeit mit Aufrufen bestückt werden. Aufrufe können wieder verwendet und in Listen gehalten werden. Dadurch können Aufrufe zu Makros kombiniert oder nacheinander rückgängig (Undo) gemacht werden. Aufrufer werden von aufgerufenem Empfänger strikt getrennt.
Beispielcode (C#):
using System;
using System.Collections;
namespace CommandPattern
{
...Read more.
Design Patterns – Singleton
Das Singleton-Objekt existiert nur einmal. Das wird dadurch sicher gestellt dass der Konstruktor der Singletonklasse privat ist. Um eine Instanz zu erzeugen, existiert eine statische Elementfunktion, die einer Instanzvariablen, falls diese uninitialisiert ist, eine Instanz von Singleton zuweist und diese zurück gibt. Ein Objekt wird also nur erzeugt, wenn es benötigt wird und das genau ...Read more.
Design Patterns – Factory Method
Die abstrakte Fabrik hatte ich ja schon. Aber was ist der Unterschied zur Fabrikmethode? Ich zitiere aus Objektorientierte Programmierung – Das umfassende Handbuch:
Die Fabrikmethode existiert nicht an einer eigens dafür erstellten Klasse, sondern sie ist eine zusätzliche Methode in einer bereits existierenden Klassenhierarchie.
Die erzeugenden Klassen haben in der Regel eine konkrete technische oder ...Read more.
Design Patterns – Decorator (Wrapper)
Der Dekorierer dient dazu, eine Komponente zu erweitern, ohne sie zu verändern. Es setzt eben dieses OCP (Open Closed Principle) in seiner reinsten Form um: Ein Objekt zu erweitern ohne es zu verändern. Es wird eingesetzt, wo eine Klassenhierarchie eine Klassenexplosion ergeben würde. Dekoratoren, die eine Komponente ergänzen, stellen einen Baukasten zur verfügung, dessen Bausteine ...Read more.
Design Patterns – Observer
Beim Observer-Pattern geht es darum 1-n Objekte von der Zustandsänderung eines Subjekts in Kenntnis zu setzen, und das in möglichst lose gekoppelter weise.
Beispiel: In einer Autorenn-Simulation gibt es eine Ampel und verschiedene Autos. Wenn die Ampel ihren Zustand ändert, also rot, organge oder grün wird, sendet sie an alle als Observer registrierten Autos ein Update(). ...Read more.
Design Patterns – Abstract Factory
Abstrakte Fabrik – das hört sich am kompliziertesten an, also weiter damit. Die abstrakte Fabrik ist ein Erzeugungsmuster und dient dazu, sich von der Erzeugung ganzer Produktfamilien unabhängig zu machen. Ein prominentes Beispiel sind Fabriken zur Erzeugung von Betriebssystemabhängigen Oberflächenelementen. Es könnte eine Fabrik MSFactory und eine Fabrik MacFactory geben, die beide verschiedene Familien von ...Read more.
Design Patterns – Strategy
Eine Frage hat mich neulich verblüfft: Welche Design Patterns benutzt du denn so? Obwohl ich umbewusst bestimmt etwas von Design verstehe, kann ich es nicht in Worte fassen. Und dazu dienen ja auch Design Patterns, nämlich um über ein gemeinsames Vokabular bezüglich des Softwaredesigns zu verfügen. Also jetzt werden die Patterns systematisch gepaukt. In meiner ...Read more.



