1。何为简单工厂模式?就是把创建的过程封装起来,客户只关心需要什么样的产品,不关心整个产品创建的过程。我们来实现一个简单的工厂模式。我们就拿客户点餐为例,客户想要什么食品,他不关心食品是怎么做的,食品的做法直接交给工厂即可。我们来创建一个食品的基类。并且创建2种食品。
using System;
using UnityEngine;
public abstract class Food
{
public abstract void print();
}
public class TomatoScrambledEggs : Food
{
public override void print()
{
Debug("我是:TomatoScrambledEggs");
}
}
public class ShreddedPorkWithPotatoes : Food
{
public override void print()
{
Debug("我是:ShreddedPorkWithPotatoes");
}
}
2.我们在来创建一个工厂,用于创建这两种食品
using System;
/// <summary>
/// 简单工厂模式
/// </summary>
public class FoodSimpleFactory
{
static public Food createFood(string foodName)
{
Food food;
if(foodName.Equals("TomatoScrambledEggs"))
{
food = new TomatoScrambledEggs ();
}
else if(foodName.Equals("ShreddedPorkWithPotatoes"))
{
food = new ShreddedPorkWithPotatoes ();
}
return food;
}
}
3.我们来测试,创建一个客户类
using System;
public class Customer
{
public Customer ()
{
Food food1 = FoodSimpleFactory.createFood ("TomatoScrambledEggs");
food1.print ();
Food food2 = FoodSimpleFactory.createFood ("ShreddedPorkWithPotatoes");
food1.print ();
}
}
好了,我们的简单工厂模式基本实现了,他有他的优点,可以把创建的过程封装起来,顾客不需要知道整个加工的过程,缺点是没次增加新的食品,活着食品做法有变动时,他需要手动更改工厂类。