Heim >Backend-Entwicklung >C#.Net-Tutorial >Beispiel für ein C#-Entwurfsmuster-Strategiemuster

Beispiel für ein C#-Entwurfsmuster-Strategiemuster

黄舟
黄舟Original
2017-03-02 13:10:341625Durchsuche

Kapselungsalgorithmus

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




}

Das Obige ist der Inhalt des Strategiemusterbeispiels für C#-Entwurfsmuster. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.org). .php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn