婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺析.net策略模式

淺析.net策略模式

熱門標簽:河南語音外呼系統公司 威海電銷 寧夏機器人電銷 關于宗地圖標注技術規范 t3出行地圖標注怎么做 400電話辦理最優質 河北網絡回撥外呼系統 外呼電銷機器人軟件 400免費電話怎么辦理

對于策略模式的理解:當一個業務有多種需求時候,在某個時候需要使用不同的方式來計算結果。這時候不同的方式可以理解為不同的策略來解決同樣的問題。 例如:商場收銀系統計算價格,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());

結果:

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

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

您可能感興趣的文章:
  • jquery獲得同源iframe內body下標簽的值的方法
  • 深入理解JavaScript系列(19):求值策略(Evaluation strategy)詳解
  • 深入理解JavaScript系列(33):設計模式之策略模式詳解
  • JavaScript設計模式之策略模式實例
  • js設置document.domain實現跨域的注意點分析
  • js兼容火狐獲取圖片寬和高的方法
  • js兼容火狐顯示上傳圖片預覽效果的方法
  • js同源策略詳解

標簽:吉林 咸寧 廣元 樂山 淮北 固原 賀州 池州

巨人網絡通訊聲明:本文標題《淺析.net策略模式》,本文關鍵詞  淺析,.net,策略,模式,淺析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺析.net策略模式》相關的同類信息!
  • 本頁收集關于淺析.net策略模式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 新野县| 武安市| 道孚县| 商南县| 宁德市| 湖南省| 怀仁县| 来宾市| 娄底市| 梧州市| 昆明市| 明光市| 夏津县| 左贡县| 涞源县| 建湖县| 综艺| 周宁县| 玉溪市| 衡山县| 红安县| 大竹县| 鄢陵县| 文化| 嘉峪关市| 南乐县| 时尚| 昔阳县| 霍山县| 瑞安市| 镇平县| 临泉县| 炉霍县| 北辰区| 白河县| 遂平县| 辽阳县| 江陵县| 尉氏县| 虞城县| 偃师市|