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

黄舟
发布: 2017-03-02 13:10:34
原创
1608 人浏览过

封装算法

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)!


来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板