首頁 >後端開發 >C#.Net教程 >C# 設計模式之 策略模式 範例

C# 設計模式之 策略模式 範例

黄舟
黄舟原創
2017-03-02 13:10:341619瀏覽

封裝演算法

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


#
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn