Rumah  >  Artikel  >  pembangunan bahagian belakang  >  C# 设计模式之 策略模式 示例

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

黄舟
黄舟asal
2017-03-02 13:10:341605semak imbas

封装算法

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


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn