工厂模式





0/5 (0投票)
工厂方法是“定义一个用于创建对象的接口,但让子类决定实例化哪个类。” 简单来说,我们
工厂方法是“定义一个用于创建对象的接口,但让子类决定实例化哪个类。”
简单来说,我们开发一个抽象,隔离确定创建哪种类型类的逻辑。
以下示例可以帮助你完全理解这个概念。
你去咖啡店想点咖啡。 有两种咖啡
- 热的
- 冷的
假设菜单上第一项是热咖啡,第二项是冷咖啡
你告诉他们哪个号码,就会处理相应的订单。
为了用工厂模式解决这个问题,我们将创建一个抽象类和两个子类:
public abstract class Coffee
{
public abstract string Title { get; }
}
public class Hot : Coffee
{
public override string Title
{
get { return "加糖的热咖啡"; }
}
}
public class Cold : Coffee
{
public override string Title
{
get { return "加冰的冷咖啡"; }
}
}
// 如果咖啡不可用
public class NoCoffee : Coffee
{
public override string Title
{
get { return "今天没有咖啡了.. 要来点别的饮料吗 :) "; }
}
}
现在我们将创建一个中间类,它将接收用户的输入并创建相关类的对象。
public static class Factory
{
public static Coffee GetCoffee(int i)
{
switch (i)
{
case 0
return new Hot();
case 1
return new Cold();
default
return new NoCoffee();
}
}
}
好了,所有工作都完成了,除了订单
只需要提供输入
static void Main(string[] args)
{
Console.WriteLine( Factory.GetCoffee(1).Title);
}
它会显示 热咖啡
有关源代码,请访问以下网址