65.9K
CodeProject 正在变化。 阅读更多。
Home

命令模式

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

1分钟阅读

viewsIcon

6401

命令模式“将一个请求封装成一个对象,从而使你能够用不同的请求参数化客户端,对请求排队或记录请求日志,并支持可撤销的操作。”

命令模式

“将一个请求封装成一个对象,从而使你能够用不同的请求参数化客户端,对请求排队或记录请求日志,并支持可撤销的操作。”

VB 示例的命令模式

许多新的多媒体键盘都有额外的按钮,用于打开网页浏览器、MP3 播放器等。我们可以使用命令模式来编程它们,以便键盘无需知道它正在执行哪个应用程序。

’ 这是调用者
Public MultiMediaKeyBoard

     
’ 这个数组保存按钮的命令
    
’ 我们的键盘
    
Private_ButtonSlotsAs 新建ArrayList(2)    

     Public
SubMain()
        
’ 设置命令对应键盘
        
’ 按钮。
        
DimaWebBrowserAs 新建WebBrowser
         _ButtonSlots(0) =
新建WebBrowserCommand(aWebBrowser)

         DimaWordProcessorAs 新建WordProcessor
         _ButtonSlots(1) =
新建WordProcessorCommand(aWordProcessor)

     
End Sub

      Public SubMediaButtonPushed(ByValbuttonNumberAs 整数)

          
’ 当键盘上的按钮被点击时,它的 API 可以向我们发送
         
’ 按钮的 ID。然后我们可以调用相应类中的 execute 方法
         
’ 对应的
         
CType(_ButtonSlots(buttonNumber), ICommand).execute()

     
End Sub

End


Public 接口ICommand
  
Subexecute()
End 接口

’ 接收者
Public WebBrowser

      Public SubOpenWebBrowser()
         
’ 打开网页浏览器的代码
     
End Sub
End

’ 具体命令类
Public WebBrowserCommand
     
实现ICommand

     
Private_WebBrowserAsWebBrowser
   
     
Public Sub 新建(ByValWebBrowserAsWebBrowser)
            _WebBrowser = WebBrowser
      
End Sub      

      Public
Subexecute()实现ICommand.execute
           _WebBrowser.OpenWebBrowser()
     
End Sub

End

’ 接收者
Public WordProcessor

     
Public SubOpenWordProcessor()
          
’ 打开文字处理器的代码
     
End Sub
End

’ 具体命令类
Public WordProcessorCommand
     
实现ICommand

      Private_WordProcessorAsWordProcessor

     
Public Sub 新建(ByValWordProcessorAsWordProcessor)
           _WordProcessor = WordProcessor
     
End Sub

      Public Subexecute()实现ICommand.execute
           _WordProcessor.OpenWordProcessor()
     
End Sub

End


 

© . All rights reserved.