国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務器之家 - 編程語言 - ASP.NET教程 - 淺析.net策略模式

淺析.net策略模式

2019-12-13 09:44hebedich ASP.NET教程

這篇文章主要介紹了淺析.net策略模式,需要的朋友可以參考下

對于策略模式的理解:當一個業務有多種需求時候,在某個時候需要使用不同的方式來計算結果。這時候不同的方式可以理解為不同的策略來解決同樣的問題。 例如:商場收銀系統計算價格,1:正常計算 2:商品打折計算,3:滿300減100等方式。就可以按三種策略來處理需求。

簡單的說:策略模式就是用來封裝算法的,但在實踐中,我們發現可以用他來封裝幾乎任何類型的規則,只要在分析過程中聽到需要在不同的時間應用不同的業務規則,就可以考慮使用策略模式處理這種變化的可能性。

 

復制代碼代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignModel
{
    /// <summary>
    /// 策略模式
    /// </summary>
    public class TacticsModel
    {
        public string type { get; set; }
        public virtual string GetResult()
        {
            return "";
        }
    }
    public class Normal:TacticsModel
    {
        public override string GetResult()
        {
            return "正常計算價格";
        }
    }
    public class Discount : TacticsModel
    {
        public override string GetResult()
        {
            return "按打折計算價格";
        }
    }
    public class Preferential : TacticsModel
    {
        public override string GetResult()
        {
            return "滿300減100活動";
        }
    }
    public class CashContext
    {
        TacticsModel tm = null;
        public CashContext(string type)
        {
            switch (type)
            {
                case "1":
                    tm = new Normal();
                    break;
                case "2":
                    tm = new Discount();
                    break;
                case "3":
                    tm = new Preferential();
                    break;
                default:
                break;
             }
        }
        public string GetResult()
        {
            return tm.GetResult();
        }
    }
}

 

這種方式和簡單工廠方式差不多,只是有稍微區別。 簡單工廠模式需要暴漏給客戶端兩個類,策略模式和工廠模式的簡單結合只暴漏了一個CashContext類

客戶端調用代碼:

 

復制代碼代碼如下:

   Console.WriteLine("請計算類型1正常,2打折,3優惠:");
   string type = Console.ReadLine();
   CashContext cc = new CashContext(type);
   Console.WriteLine(cc.GetResult());


結果:

 

淺析.net策略模式

淺析.net策略模式

其中還是使用了swich ,也就是就是說增加一種需求就有更改swith語句,很是不爽,不過任何需求的變更都是需要成本的。

只是成本的高低是有區別的。這個地方用反射技術會有更好的效果。后續會補充。

延伸 · 閱讀

精彩推薦
262
主站蜘蛛池模板: 亚洲不卡在线 | 欧美一级黄色片网站 | 亚洲精选一区 | 最新黄网 | 91高清在线| 日韩成人在线看 | 精品精品 | 青青草原综合久久大伊人精品 | 黄色精品网站 | 综合久久av | 在线国产精品一区 | 欧美3区| 日韩成人在线免费观看 | 精品天堂 | 欧美日在线 | 日韩精品影院 | 黄色av免费网站 | 日韩aaa视频 | 国产亚洲精品久久久久久 | 久久国 | 涩涩999 | 中文字幕欧美日韩 | 在线观看亚洲免费视频 | 国产日韩欧美综合 | 懂色av一区二区三区免费观看 | 欧美日韩中文字幕在线 | 99爱在线观看 | 久久久精品一区二区 | 国产专区一区 | 亚洲一区av在线 | 欧美日韩亚洲国产精品 | 欧美日韩亚洲一区二区 | 毛片xxx | 亚洲精品福利在线 | 国产精品亚洲视频 | 国产精品久久久久久久久久妞妞 | 色噜噜狠狠狠综合曰曰曰88av | 国产免费天天看高清影视在线 | 国产日韩欧美一区 | 瑟瑟视频网站 | 国产免费一区二区三区 |