Builder
14. März 2020
Es trennt die Konstruktion komplexer Objekte von deren Repräsentationen, wodurch dieselben Konstruktionsprozesse wiederverwendet werden können.
https://de.wikipedia.org/wiki/Erbauer_(Entwurfsmuster)
Beim Builder-Pattern geht es darum, dass die Erzeugung von komplexen Objekten an Builder-Klassen übergeben wird. Dies hat der Vorteil, dass die Erzeugung auch von anderen Komponenten wiederverwendet werden kann.
![](https://wp.codigo.at/wp-content/uploads/2020/03/builder.png)
public class Phone
{
}
public interface IPhoneBuilder
{
void BuildScreen();
void BuildOS();
void BuildBattery();
Phone Build();
}
public class AndroidBuilder : IPhoneBuilder
{
public void BuildBattery()
{
}
public void BuildOS()
{
}
public void BuildScreen()
{
}
public Phone Build()
{
}
}
public class ApplePhoneBuilder : IPhoneBuilder
{
public void BuildBattery()
{
}
public void BuildOS()
{
}
public void BuildScreen()
{
}
public Phone Build()
{
}
}
public class PhoneManufacterer
{
public Phone Build(IPhoneBuilder phoneBuilder)
{
phoneBuilder.BuildBattery();
phoneBuilder.BuildScreen();
phoneBuilder.BuildOS();
return phoneBuilder.Build();
}
}
class Program
{
static void Main(string[] args)
{
var manufacterer = new PhoneManufacterer();
var applePhoneBuilder = new ApplePhoneBuilder();
var phone = manufacterer.Build(applePhoneBuilder);
}
}