国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-16 00:36:16
字體:
來源:轉載
供稿:網(wǎng)友

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

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

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

#!/usr/bin/env python# -*- coding:utf-8 -*-__author__ = 'Andy'"""大話設計模式設計模式——命令模式命令模式(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í)行命令

上面類的設計如下圖:

優(yōu)點:

可以較容易的設計一個命令隊列

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

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

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

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

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

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 克山县| 五家渠市| 开江县| 惠安县| 明水县| 漠河县| 当雄县| 奉化市| 平和县| 莲花县| 连云港市| 廊坊市| 阿巴嘎旗| 黔西| 泸西县| 福州市| 清河县| 揭东县| 凤山县| 云安县| 霸州市| 林周县| 东明县| 迁西县| 莆田市| 霍邱县| 桂平市| 连南| 连江县| 山东省| 洪泽县| 林口县| 乌拉特中旗| 襄城县| 梨树县| 浑源县| 山阴县| 来凤县| 福贡县| 丹巴县| 陆丰市|