日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式学习笔记——命令模式(Command)

發(fā)布時間:2025/5/22 asp.net 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式学习笔记——命令模式(Command) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.特點:將請求發(fā)送者與具體實現(xiàn)者解耦,可對請求排列、取消、重做,支持事務(wù)。(多請求,單處理)

2.概念:屬于對象的行為模式【GOF95】。命令模式又稱為行動(Action)模式或交易(Transaction)模式。命令模式把一個請求或者操作封裝到一個對象中。命令模式允許系統(tǒng)使用不同的請求把客戶端參數(shù)化,對請求排隊或者記錄請求日志,可以提供命令的撤銷和恢復(fù)功能。

3.類圖:

4、程序?qū)崿F(xiàn):

/// <summary>/// 接收者類,知道如何實施與執(zhí)行一個請求相關(guān)的操作,任何類都可能作為一個接收者。/// </summary>public class Receiver{/// <summary>/// 真正的命令實現(xiàn)/// </summary>public void Action(){Console.WriteLine("Execute request!");}}/// <summary>/// 抽象命令類,用來聲明執(zhí)行操作的接口/// </summary>public interface ICommand{void Execute();}/// <summary>/// 具體命令類,實現(xiàn)具體命令。/// </summary>public class ConcereteCommand : ICommand{// 具體命令類包含有一個接收者,將這個接收者對象綁定于一個動作private Receiver receiver;public ConcereteCommand(Receiver receiver){this.receiver = receiver;}/// <summary>/// 說這個實現(xiàn)是“虛”的,因為它是通過調(diào)用接收者相應(yīng)的操作來實現(xiàn)Execute的/// </summary>public void Execute(){receiver.Action();}}/// <summary>/// 調(diào)度類,要求該命令執(zhí)行這個請求/// </summary>public class Invoker{private ICommand command;/// <summary>/// 設(shè)置命令/// </summary>/// <param name="command"></param>public void SetCommand(ICommand command){this.command = command;}/// <summary>/// 執(zhí)行命令/// </summary>public void ExecuteCommand(){command.Execute();}}

  

class Program{static void Main(string[] args){Receiver receiver = new Receiver();ICommand command = new ConcereteCommand(receiver);Invoker invoker = new Invoker();invoker.SetCommand(command);invoker.ExecuteCommand();Console.Read();}}

  

轉(zhuǎn)載于:https://www.cnblogs.com/ice-baili/p/4710400.html

總結(jié)

以上是生活随笔為你收集整理的设计模式学习笔记——命令模式(Command)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。