封装算法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DesignPytternDemo
{
/// <summary>
/// 策略模式
/// </summary>
public abstract class BaseStategy
{
public virtual int GetTicketPrice(int price)
{
return price;
}
}
public class CommonPersonStrategy : BaseStategy
{
public override int GetTicketPrice(int price)
{
return base.GetTicketPrice(price);
}
}
public class StudentStrategy : BaseStategy
{
public override int GetTicketPrice(int price)
{
return price / 2;
}
}
public class Context
{
private BaseStategy _context;
public Context(string personType)
{
switch (personType)
{
case "c":
_context = new CommonPersonStrategy();
break;
case "s":
_context = new StudentStrategy();
break;
default:
break;
}
}
public int GetTicketPrice(int price)
{
return this._context.GetTicketPrice(price);
}
}
}