آشنایی با الگوی طراحی Builder
نویسنده: وحید فرهمندیان
تاریخ: ۱۳۹۳/۱۲/۰۲ ۲۰:۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
public class Product
{
public Product(string name)
{
Name = name;
}
public string Name { get; set; }
public string Screen { get; set; }
public string OS { get; set; }
public override string ToString()
{
return string.Format(Screen + "/" + OS + "/" + Name);
}
} public interface IBuilder
{
void BuildScreen();
void BuildOS();
Product Product { get; }
} public class ConcreteBuilder1 : IBuilder
{
public Product p;
public ConcreteBuilder1()
{
p = new Product("Android Cell Phone");
}
public void BuildScreen()
{
p.Screen = "Touch Screen 16 Inch!";
}
public void BuildOS()
{
p.OS = "Android 4.4";
}
public Product Product
{
get { return p; }
}
} public class ConcreteBuilder2 : IBuilder
{
public Product p;
public ConcreteBuilder2()
{
p = new Product("Windows Phone");
}
public void BuildScreen()
{
p.Screen = "Touch Screen 32 Inch!";
}
public void BuildOS()
{
p.OS = "Windows Phone 2014";
}
public Product Product
{
get { return p; }
}
} public class Director
{
public void Construct(IBuilder builder)
{
builder.BuildScreen();
builder.BuildOS();
}
} Director d = new Director(); ConcreteBuilder1 cb1 = new ConcreteBuilder1(); d.Construct(cb1); Console.WriteLine(cb1.p.ToString());
public class BlackBerry: IBuilder
{
public Product p;
public BlackBerry ()
{
p = new Product("BlackBerry");
}
public void BuildScreen()
{
p.Screen = "Touch Screen 8 Inch!";
}
public void BuildOS()
{
p.OS = "BlackBerry XXX";
}
public Product Product
{
get { return p; }
}
} public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();