<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Head First設計模式之命令模式

      一、定義

      定義:將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進行參數化。對請求排隊或記錄請求日志,以及支持可撤消的操作。

      主要解決:在軟件系統中,行為請求者與行為實現者通常是一種緊耦合的關系,但某些場合,比如需要對行為進行記錄、撤銷或重做、事務等處理時,這種無法抵御變化的緊耦合的設計就不太合適。

      何時使用:在某些場合,比如要對行為進行"記錄、撤銷/重做、事務"等處理,這種無法抵御變化的緊耦合是不合適的。在這種情況下,如何將"行為請求者"與"行為實現者"解耦?將一組行為抽象為對象,可以實現二者之間的松耦合。

      如何解決:通過調用者調用接受者執行命令,順序:調用者→接受者→命令。

      二、結構

       

      從命令模式的結構圖可以看出,它涉及到五個角色,它們分別是:

      • 客戶角色:發出一個具體的命令并確定其接受者。
      • 命令角色:聲明了一個給所有具體命令類實現的抽象接口
      • 具體命令角色:定義了一個接受者和行為的弱耦合,負責調用接受者的相應方法。
      • 請求者角色:負責調用命令對象執行命令。
      • 接受者角色:負責具體行為的執行。

      三、適用場景

       認為是命令的地方都可以使用命令模式,比如: 1、GUI 中每一個按鈕都是一條命令。 2、模擬 CMD。

      四、優缺點

      優點: 1、降低了系統耦合度。 2、新的命令可以很容易添加到系統中去。

      缺點:使用命令模式可能會導致某些系統有過多的具體命令類。

      五、實現

       

       /// <summary>  
          /// 電視機  
          /// </summary>  
          public class Television
          {
              /// <summary>  
              /// 模式是關閉的  
              /// </summary>  
              bool isopen = false;
              /// <summary>  
              /// 切換關閉、打開  
              /// </summary>  
              public string Switch()
              {
                  if (isopen)
                  {
                      isopen = false;
                      return "關閉電視機";
                  }
                  else
                  {
                      isopen = true;
                      return "打開電視機";
      
                  }
              }
      
          }
      
          /// <summary>  
          /// 命令接口  
          /// </summary>  
          public interface CommandInterface
          {
              /// <summary>  
              /// 執行命令  
              /// </summary>  
              string Execute();
          }
      
          /// <summary>  
          /// 電視機命令對象  
          /// </summary>  
          public class TeleisionCommand : CommandInterface
          {
              /// <summary>  
              /// 電視機對象  
              /// </summary>  
              private Television Tv = new Television();
              #region CommandInterface 成員  
              /// <summary>  
              /// 執行命令  
              /// </summary>  
              public string Execute()
              {
                  return Tv.Switch();
              }
      
              #endregion
          }
      
          /// <summary>  
          /// 控制中心  
          /// </summary>  
          public static class ControlContent
          {
              private static CommandInterface Command;
              public static void SetControlObjectCommand(CommandInterface cobject)
              {
                  Command = cobject;
              }
              public static string ExecuteControlObject()
              {
                  return Command.Execute();
              }
          }
      
          class Program
          {
              static void Main(string[] args)
              {
                  TeleisionCommand tvcommand = new TeleisionCommand();
      
                  ControlContent.SetControlObjectCommand(tvcommand);
                  Console.WriteLine(ControlContent.ExecuteControlObject());
                  Console.WriteLine(ControlContent.ExecuteControlObject());
                  Console.ReadLine();
              }
          }

       

       

       參考

      http://wangqingpei557.blog.51cto.com/1009349/626464/

      http://www.runoob.com/design-pattern/command-pattern.html

       

       

      歡迎閱讀本系列文章:Head First設計模式之目錄 

       

      posted @ 2017-09-10 11:42  心存善念  閱讀(570)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲免费观看一区二区三区| 美女一区二区三区亚洲麻豆| 国产国产久热这里只有精品| 亚洲国产欧美在线人成AAAA| 高潮射精日本韩国在线播放| 边添小泬边狠狠躁视频| 国产精品户外野外| 熟女少妇精品一区二区| 日本一区二区久久人妻高清 | 国产久免费热视频在线观看| 精品尤物国产尤物在线看| 久久精品娱乐亚洲领先| 欧美福利电影A在线播放| Y111111国产精品久久久| 国产91成人亚洲综合在线| 中文字幕av一区二区| 免费无码一区无码东京热| 久久99热只有频精品8| 人妻中文字幕av资源站| 国产精品爽爽va在线观看网站| 丹巴县| 亚洲中文字幕日产无码成人片| 精选国产av精选一区二区三区| 四虎影视永久在线精品| 97色伦97色伦国产| 国产av一区二区午夜福利| 国产一区二区在线有码| 日韩人妖精品一区二区av| 国精品无码一区二区三区在线看 | 人妻av无码系列一区二区三区| 少妇粗大进出白浆嘿嘿视频| 无码日韩av一区二区三区| 高清无打码一区二区三区| 国产在线观看黄| 精品偷拍被偷拍在线观看| 日本亚洲一区二区精品久久| 国产精品护士| 精品国产一区二区三区av性色| 中文文字幕文字幕亚洲色| 五月丁香激激情亚洲综合| 中文无码人妻有码人妻中文字幕|