factory从若干个可能类创建对象。
例如:如果创建一个通信类接口,并有多种实现方式,可以使用factory创建一个实现该接口的对象,factory可以根据我们的选择,来创建适合的对象。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
namespace Demo
{
public interface ICommunication
{
bool Send(object data);
}
public class Serial:ICommunication
{
public bool Send(object data)
{
Console.WriteLine("通过串口发送一个数据");
return true;
}
}
public class Lan:ICommunication
{
public bool Send(object data)
{
Console.WriteLine("通过网口发送一个数据");
return true;
}
}
public class CommunicationFactory
{
public ICommunication CreateCommunicationFactory(string style)
{
switch(style)
{
case "Serial":
return new Serial();
case "Lan":
return new Lan();
}
return null;
}
}
class Program
{
static void Main(string[] args)
{
CommunicationFactory factory = new CommunicationFactory();
Console.WriteLine("请输入通信类型:Lan、Serial");
string input = Console.ReadLine();
object data = new object();
factory.CreateCommunicationFactory(input).Send(data);
Console.ReadKey();
}
}
}