标签:
一个简单的计算器栗子, 计算值和结果是固定的, 运算过程是根据需求变化的。
工厂模式一般适用于: 若干具有相同父类的子类, 并且需要重复做一件事情的时候,
所以顾名思义叫做工厂模式, 重复的东西全让工厂做了~
现在只是明白原理,但是还没真正在项目中实践过, 心得会不断的更新的
using UnityEngine;
using System.Collections;
public class Opration
{
public double NumberA{get;set;}
public double NumberB{get;set;}
public virtual double GetResult ()
{
double result = 0f;
return result;
}
}
public class OprationAdd:Opration
{
public override double GetResult()
{
double result = 0f;
result = NumberA + NumberB;
return result;
}
}
public class OprationSub:Opration
{
public override double GetResult()
{
double result = 0f;
result = NumberA - NumberB;
return result;
}
}
public class OprationMul:Opration
{
public override double GetResult()
{
double result = 0f;
result = NumberA * NumberB;
return result;
}
}
public class OprationDiv:Opration
{
public override double GetResult()
{
double result = 0f;
if (NumberB == 0)
throw new UnityException ("除数不能为0");
result = NumberA / NumberB;
return result;
}
}
public class OprationFactor
{
public static Opration CreateOptation(string opa)
{
Opration opration = null;
switch(opa)
{
case "+":
opration = new OprationAdd();
break;
case "-":
opration = new OprationSub();
break;
case "*":
opration = new OprationMul();
break;
case "/":
opration = new OprationDiv();
break;
}
return opration;
}
}
public class NewBehaviourScript : MonoBehaviour
{
void Start ()
{
Opration op = OprationFactor.CreateOptation ("/");
op.NumberA = 10;
op.NumberB = 20;
double result = op.GetResult ();
Debug.Log ("the result is " + result);
}
}
标签:
原文地址:http://www.cnblogs.com/hellozzz/p/4654773.html