个人学习总结:
策略者模式
目录
策略者模式:
----根据不同的输入得到不同的结果
--------例如:个人交的是个人税,公司交的是公司税,通过会计这个媒介,得到不同的交税情况。
/// <summary>
/// 基类
/// </summary>
class CBaseTollage
{
/// <summary>
/// 交税 (也可以不用virtual)
/// </summary>
public virtual void payTaxes() { }
}
/// <summary>
/// 公司
/// </summary>
class Company : CBaseTollage
{
public override void payTaxes()
{
Debug.Log("公司交税");
}
}
/// <summary>
/// 个人
/// </summary>
class Persent : CBaseTollage
{
public override void payTaxes()
{
Debug.Log("个人交税");
}
}
class test : MonoBehaviour
{
void Start()
{
///输出 个人交税
Persent persent = new Persent();
this.Accountant(persent);
///输出 公司交税
Company company = new Company();
this.Accountant(company);
}
/// <summary>
/// 会计
/// 根据不同的输入(父类指针指向子类调用子类的方法)的到不同的结果
/// </summary>
void Accountant(CBaseTollage tollage)
{
tollage.payTaxes();
}
}