国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 盐池县| 泰来县| 伽师县| 民权县| 泗水县| 青浦区| 新闻| 拉萨市| 申扎县| 明星| 繁峙县| 铜川市| 北海市| 兖州市| 墨江| 巨野县| 丰宁| 肇州县| 浦东新区| 泗洪县| 梅州市| 泌阳县| 铜山县| 枣阳市| 锦州市| 喀喇| 齐河县| 两当县| 会同县| 玛曲县| 嘉义县| 武义县| 金平| 公安县| 蚌埠市| 博兴县| 淳化县| 灵宝市| 巨鹿县| 驻马店市| 澄城县|