Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
26 lines (23 sloc) 949 Bytes
// Beschreibt ein beliebiges Objekt, welches dynamisch und zur Laufzeit
// erzeugt werden soll.
interface Product
// Für jedes Produkt müssen mehrere konkrete Klassen definiert werden, welche
// anschließend in der Fabrik erstellt werden.
class ConcreteProductA implements Product
class ConcreteProductB implements Product
// Die Produkte sollen im besten Fall nur mithilfe der Fabrik erstellt werden.
class ProductFactory
// Abhängig davon was angefragt wird, werden verschiedene Produkte
// erzeugt. Anschließend bekommt man eine implementierung für genau
// diese Anfrage
method create(which) : Product
if which is A
return new ConcreteProductA()
if which is B
return new ConcreteProductB()
program Client
// innerhalb des Clients, muss nur noch die Fabrik und
// mit der Create-Methode das passende Objekt erzeugt werden
var factory = new ProductFactory()
Product a = factory.create(A);
Product c = factory.create(B);
You can’t perform that action at this time.