好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > .NET 下運用策略模式(組合行為和實體的一種模式)

.NET 下運用策略模式(組合行為和實體的一種模式)

熱門標簽:太原外呼電銷機器人費用 使用智能電話機器人違法嗎 朝陽市地圖標注 蘇州銷售外呼系統預算 淘寶地圖標注如何做 外呼系統用員工身份證 保山電話外呼管理系統怎么用 東莞語音電銷機器人排名 電話機器人廣告話術
我簡單的理解策略模式就是把行為(方法)單獨的抽象出來,并采用組合(Has-a)的方式,來組合行為和實體的一種模式。再來個官方的解釋:
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
網上也有很多資源介紹這個模式,我也不從頭說起了。在.NET中委托給我們給我們提供了簡單實現策略模式的方法,可以簡單的把一個委托看成是一種策略方法,而且還能借組lmabda表達式這樣的形式來表達出來。比如,.NET中對數組排序的Sort的方法就是一個策略模式的實現模板。
復制代碼 代碼如下:

static void Main(string[] args)
{
int[] array = new int[] { 3, 2, 8, 1, 5 };
//相當于是重新設置了一個排序策略
Array.Sort(array, (a, b) => b - a);
//這里也相當于為每個元素安排了一個輸出策略
Array.ForEach(array, Console.WriteLine);
}

以上Array的兩個方法都可以看成是策略模式在.net中的一種實現。
之前寫一些UI自動化的時候,也借鑒了一下策略模式的思想。下面是我的一個實例:被測試網站是一個針對全球很多市場的一個網站,有時同一個測試點,需要我們配置一下網絡代理和其它不同的設置來模擬當地市場。
復制代碼 代碼如下:

using System;
using System.Linq;
namespace StrategyPattern
{
class Program
{
static void Main(string[] args)
{
UITest test = new UITest();
test.RunTest();
test.SetProxy("zh-cn");
test.RunTest();
}
}
class UITest
{
Action proxyStrategy;
//Default is US market
public UITest(String market = "en-us")
{
setProxy(market);
}
public void SetProxy(String market)
{
setProxy(market);
}
private void setProxy(String market)
{
Type proxy = typeof(Proxy);
var m = (from i in proxy.GetMethods()
from j in i.GetCustomAttributes(false)
let k = j as Market
where k != null
k.MarketName.Contains(market)
select i).First();
proxyStrategy = (Action)Delegate.CreateDelegate(typeof(Action), null, m);
}
public void RunTest()
{
proxyStrategy();
//之后運行主要的功能測試
//......
}
}
class Market : Attribute
{
public String MarketName { get; set; }
public Market(String marketName)
{
this.MarketName = marketName;
}
}
class Proxy
{
[Market("en-us,es-us")]
public void SetUSProxy()
{
Console.WriteLine("us proxy");
}
[Market("zh-cn")]
public void SetChinaProxy()
{
Console.WriteLine("china proxy");
}
[Market("en-gb")]
public void SetUKProxy()
{
Console.WriteLine("uk proxy");
}
}
}
您可能感興趣的文章:
  • php設計模式 Strategy(策略模式)
  • 關于.NET Framework中的設計模式--應用策略模式為List排序
  • java實現策略模式使用示例
  • C#策略模式(Strategy Pattern)實例教程
  • C++設計模式之策略模式
  • 淺析.net策略模式

標簽:洛陽 呼倫貝爾 綏化 運城 阿里 潛江 西藏 克拉瑪依

巨人網絡通訊聲明:本文標題《.NET 下運用策略模式(組合行為和實體的一種模式)》,本文關鍵詞  .NET,下,運用,策略,模式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《.NET 下運用策略模式(組合行為和實體的一種模式)》相關的同類信息!
  • 本頁收集關于.NET 下運用策略模式(組合行為和實體的一種模式)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 好大好硬好爽AAAAA视频| 日日摸碰夜夜爽| 国产免费观看视频| 久久午夜无码鲁丝片秋霞欧美AV6| A片好大好紧好爽视频麻豆| 亚洲国产激情在线一区| 中文字幕一区精品欧美| 看全色黄大色大片| 无码免费一区二区三区| 蘑菇短视频app免费版本下载| 特黄色毛片| 黄色片a级| 女人和男人操| www.香蕉.com| 欧美午夜无码A片在线18禁直播 | 欧美国产高清欧美| 一边揉着胸一边面膜下的注意事项| 欧美 卡通 另类 偷拍 在线| 久草欧美| 男生一边亲胸一边揉下面| 国产国语一级毛片在线放| 下面痒好想做快给我| 99久久精品国产综合一区| 欧美丰满老熟妇AAAA片潘金莲| 妺妺用??夹我的??网站| 97久久综合区小说区图片专区| 入禽太深强制1v2| 亚洲欧洲综合在线观看| 亚洲日产精品一二| 黄网站污| 欧美性猛交xx免费看| 久久精品波多野结衣最新章节 | 国产精品久久久久久日韩电影男同| 高清偷窥校园女浴室洗澡| 中文字幕久久人妻一区二区三区| 日本一片免费观看高清完整| 超级乱淫岳最新章节目录| 年轻朋友的妻子3| 欧美人禽zozo伦交| 美女视频一区二区三区| 中文字幕黑人无码亚洲男男|