C# 设计模式之 策略模式 示例

来源:这里教程网 时间:2026-02-21 13:28:36 作者:

封装算法

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);
        }
    }


}

 以上就是C# 设计模式之 策略模式  示例的内容,更多相关内容请关注PHP中文网(www.php.cn)!

相关推荐