using System;
using System.Collections.Generic;
using System.Text;
namespace Factory
{
public class Program
{
static void Main(string[] args)
{
Creator.Find().Factory().NewComputer();
}
}
/// <summary>
/// 定义一个产品类接口
/// </summary>
public interface IComputer
{
/// <summary>
/// 定义一个抽象的生产电脑的方法
/// </summary>
void NewComputer();
}
/// <summary>
/// 生产联想电脑的类
/// </summary>
public class LenovoNewComputer : IComputer
{
public void NewComputer()
{
Console.WriteLine("我生产联想牌电脑!");
}
}
/// <summary>
/// 生产苹果牌电脑的类
/// </summary>
public class AppleNewComputer:IComputer
{
public void NewComputer()
{
Console.WriteLine("我生产苹果牌电脑!");
}
}
/// <summary>
/// 定义一个抽象电脑工厂的类
/// </summary>
public abstract class Creator
{
public static Creator Find()
{
Creator cr = null;
string type = "b";
switch(type)
{
case "a": cr = new LenovoCreator();
break;
case "b": cr = new AppleCreator();
break;
}
return cr;
}
/// <summary>
/// 都生产电脑的抽像方法(返回IComputer)
/// </summary>
public abstract IComputer Factory();
}
/// <summary>
/// 生产的联想电脑实体工厂类
/// </summary>
public class LenovoCreator:Creator
{
public override IComputer Factory()
{
return new LenovoNewComputer();
}
}
/// <summary>
/// 生产的苹果电脑实体工厂类
/// </summary>
public class AppleCreator : Creator
{
public override IComputer Factory()
{
return new AppleNewComputer();
}
}
}