欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python設(shè)計模式之命令模式原理與用法實例分析

 更新時間:2019年01月11日 09:40:39   作者:Andy冉明  
這篇文章主要介紹了Python設(shè)計模式之命令模式,結(jié)合具體實例形式分析了Python命令模式相關(guān)概念、原理、定義及使用方法,需要的朋友可以參考下

本文實例講述了Python設(shè)計模式之命令模式原理與用法。分享給大家供大家參考,具體如下:

命令模式(Command Pattern):將請求封裝成對象,從而使可用不同的請求對客戶進行參數(shù)化;對請求排隊或記錄請求日志,以及支持可撤消的操作.

下面是一個命令模式的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設(shè)計模式
設(shè)計模式——命令模式
命令模式(Command Pattern):將請求封裝成對象,從而使可用不同的請求對客戶進行參數(shù)化;對請求排隊或記錄請求日志,以及支持可撤消的操作.
"""
# 命令類
class Command(object):
  def __init__(self, receiver):
    self.receiver = receiver
  def execute(self):
    pass
# 執(zhí)行接收者的操作
class ConcreteCommand(Command):
  def execute(self):
    self.receiver.action()
# 接收命令
class Invoker(object):
  def __init__(self):
    self.command = ''
  def setcommand(self,command):
    self.command = command
  def excutecommand(self):
    self.command.execute()
# 具體執(zhí)行類
class Receiver(object):
  def action(self):
    print "執(zhí)行請求"
if __name__ == "__main__":
  r = Receiver() #創(chuàng)建需要執(zhí)行的命令
  c = ConcreteCommand(r) # 綁定要執(zhí)行的命令
  i = Invoker() # 創(chuàng)建命令執(zhí)行者
  i.setcommand(c) # 接受命令
  i.excutecommand() # 執(zhí)行命令

上面類的設(shè)計如下圖:

優(yōu)點:

可以較容易的設(shè)計一個命令隊列

可以較容易的將命令記入日志

允許接收請求的一方?jīng)Q定是否要否決請求

可以容易的實現(xiàn)對請求的撤銷和重做

加進新的具體命令類不影響其他的類,因此增加新的具體命令類很容易

命令模式最大的優(yōu)點是 把請求一個操作的對象與知道怎么執(zhí)行一個操作的對象分割開

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

最新評論