namespace _001简单工厂模式
{
public interface Car
{
void Drive();
}
public class BenZi : Car
{
public void Drive()
{
Console.WriteLine("奔驰");
}
}
public class AoDi : Car
{
public void Drive()
{
Console.WriteLine("奥迪");
}
}
public class Drive
{
public static Car car(string key)
{
switch (key)
{
case "BenZi":
return new BenZi();
case "AoDi":
return new AoDi();
default:
return new AoDi();
}
}
}
internal class Program
{
private static void Main(string[] args)
{
/*
*
* 优点:对外开放(产生出相应对象),对内封闭(对象生成逻辑)
*
* 缺点:对开开放程度受逻辑限制,非常被动
*
*/
Drive.car("AoDi")/*传入奔驰key,根据工厂逻辑会生成一个奔驰对象,然后调用对象接口*/.Drive();
Console.ReadKey();
}
}
}