【策略模式】官方一点的解释是定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。有点难理解,但是呢,仔细一看。。。。。。这个勉强算是switch case、if else的延伸?。。。。。。而且为什么我觉得和命令模式好像啊~
上代码:
using UnityEngine;
/// <summary>
/// 设计模式——策略模式
/// </summary>
public class DesignMode_Strategy : MonoBehaviour {
// Use this for initialization
void Start () {
ITLion lion = new ITLion();
lion.SetDemand(new DemandOne());
lion.Coding();
lion.SetDemand(new DemandTwo());
lion.Coding();
}
}
/// <summary>
/// 需求父类
/// </summary>
public abstract class Demand
{
public abstract void DemandType();
public abstract void Achieve();
}
public class DemandOne : Demand
{
public override void Achieve()
{
Debug.Log("加班到9点就行");
}
public override void DemandType()
{
Debug.Log("小需求");
}
public DemandOne()
{
DemandType();
}
}
public class DemandTwo : Demand
{
public override void DemandType()
{
Debug.Log("大需求");
}
public override void Achieve()
{
Debug.Log("加班到12点");
}
public DemandTwo()
{
DemandType();
}
}
/// <summary>
/// 工程师类
/// </summary>
public class ITLion {
public Demand mDemand;
/// <summary>
/// 得到需求
/// </summary>
/// <param name="demand"></param>
public void SetDemand(Demand demand)
{
mDemand = demand;
}
/// <summary>
/// 根据需求类型决定加班到几点
/// </summary>
public void Coding()
{
mDemand.Achieve();
}
}
运行截图:
也没有大佬给我指正一下么?…闷头学习中…