//抽象产品类
public interface IOperation {
int Cal(int a, int b);
}//具体产品1
public class AddOperation : IOperation
{
public int Cal(int a, int b)
{
return a + b;
}
}//具体产品2
public class MulOperation : IOperation
{
public int Cal(int a, int b)
{
return a * b;
}
}//工厂类
public class OperationFactory {
public IOperation GetOperation(string name)
{
switch (name)
{
case "add":
return new AddOperation();
case "mul":
return new MulOperation();
default:
return null;
}
}
}//使用测试
using UnityEngine;
public class testEasyFactory : MonoBehaviour {
private IOperation operation;
void Start () {
OperationFactory operationFactory = new OperationFactory();
operation = operationFactory.GetOperation("add");
int result = operation.Cal(10, 20);
Debug.Log(result);
operation = operationFactory.GetOperation("mul");
result = operation.Cal(10, 20);
Debug.Log(result);
}
}使用工厂类来负责提供给外界需要的具体产品的实例,只需要外界提供需要产品的类型,工厂类维护了所有的产品,从其中找出并提供它的实例出来。