当前位置: 首页 > news >正文

交友视频网站建设谷歌seo零基础教程

交友视频网站建设,谷歌seo零基础教程,做类似淘宝的网站要多少钱,黑蜘蛛网站行为型模式-命令模式命令模式(Command)解决命令执行问题描述适用环境优点:缺点:违反原则:代码实现命令模式(Command) 解决命令执行问题 描述 将一个请求封装为一个对象,并定义该对…

行为型模式-命令模式

    • 命令模式(Command)
    • 解决命令执行问题
      • 描述
      • 适用环境
      • 优点:
      • 缺点:
      • 违反原则:
      • 代码实现

命令模式(Command)

解决命令执行问题

描述

将一个请求封装为一个对象,并定义该对象的执行方法,从而使得请求能够被延迟、队列化、记录和撤销。这种方式可以提高代码的重用性和可维护性,同时也能够支持事务性操作。

适用环境

当需要将请求封装成对象时使用;当需要支持撤销操作时使用。

优点:

可以将请求的发送者和接收者解耦,提高系统的灵活性;可以很容易地扩展新的命令。

缺点:

对于过多的命令,会导致系统代码变得复杂;命令模式可能会导致系统的性能下降。

违反原则:

开放-封闭原则:如果需要增加新的命令,则需要修改所有的命令类,违反该原则。

代码实现

书店订单系统当客户提交订单时需要将订单信息保存下来。
现在使用传统的方式来处理订单:

class Book:def __init__(self, name, price):self.name = nameself.price = priceclass Order:def __init__(self):self.order_items = []def add_item(self, item):self.order_items.append(item)def place_order(self):total_price = sum([item.price for item in self.order_items])print(f"订单总金额为{total_price}元")book1 = Book('Python编程从入门到实践', 68.0)
book2 = Book('流畅的Python', 79.0)
order = Order()
order.add_item(book1)
order.add_item(book2)
order.place_order()

以上代码存在以下问题:

  1. 对订单进行其他操作时需要修改原有的代码。不同的操作编写不同的方法导致代码冗余。
    可以通过命令模式来解决这个问题,具体实现如下:
# 创建一个抽象类Command,定义一个抽象方法execute()
# 具体子类需要实现该方法,并通过调用Receiver的相关方法来执行具体操作
from abc import ABC, abstractmethodclass Command(ABC):@abstractmethoddef execute(self):pass# 创建一个具体的Command类,用于保存Order信息class OrderCommand(Command):def __init__(self, order):self.order = orderdef execute(self):total_price = sum([item.price for item in self.order.order_items])print(f"订单总金额为{total_price}元")# 创建一个Receiver类,用于实现具体操作class Order:def __init__(self):self.order_items = []def add_item(self, item):self.order_items.append(item)def remove_item(self, item):self.order_items.remove(item)def place_order(self):order_command = OrderCommand(self)order_command.execute()book1 = Book('Python编程从入门到实践', 68.0)
book2 = Book('流畅的Python', 79.0)
order = Order()
order.add_item(book1)
order.add_item(book2)
order.place_order()
http://www.hrbkazy.com/news/34557.html

相关文章:

  • 做网站和做网页有什么区别seo搜索引擎优化求职简历
  • wordpress增加导航seo外包公司一般费用是多少
  • 企业网站类型有哪些企业内训
  • 合肥网站设计建设网址域名ip解析
  • 怎么做示爱的网站seo关键词优化排名外包
  • 一起做网店的网站如何开发微信小程序
  • 南宁月嫂网站建设怎么做百度推广平台
  • 温州 网站建设网站建设维护
  • 西安网站建设哪家强网络优化工具app手机版
  • 上海网页设计师培训班seo搜索引擎优化课程
  • 网站系统建设汇报app注册接单平台
  • 电脑上如何卸载wordpress沈阳seo
  • 网页视频解析下载优化大师的三大功能
  • 福州专业做网站seo案例分析100例
  • 绍兴网站建设方案托管百度推广seo是什么意思
  • 山西笑傲网站建设推广中小企业网站优化
  • 牡丹江最新疫情seo短期培训班
  • 我们做av的搬运工网站世界杯最新排名
  • dns看国外网站锦绣大地seo
  • 公司网址大全网站优化与seo
  • 如何免费建设网站com百度一下网页入口
  • 丹阳做公司网站镇江网站
  • vps搭建asp网站windows优化大师卸载不掉
  • 怎么做卡盟网站免费google 推广优化
  • 黄骅市做网站价格外包公司什么意思
  • 做网站利用自己电脑磁力神器
  • 网站图片链接是怎么做的南京百度seo代理
  • 网站开发的发展百度网站安全检测
  • 在哪查看网站被收录的情况营销课程
  • 外加工平台班级优化大师学生版