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

网站设计动图怎么建设怎么注册自己的网址

网站设计动图怎么建设,怎么注册自己的网址,二手车网站模版,北京网站建设hj华网天下行为型模式-命令模式命令模式(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.dinnco.com/news/50324.html

相关文章:

  • 怎样做天猫网站视频最新的国际新闻
  • 山东网站建设设计公司做推广的公司一般都叫什么
  • 浙江网站建设报价长沙优化网站厂家
  • 高校建设主流的校园网站360手机优化大师下载
  • 做网站推广公司专业搜索引擎seo技术公司
  • 电子商务网站建设课后作业域名注册哪个平台比较好
  • 赣州爆炸事故东莞网络优化公司
  • 电子产品商务网站模板湖南seo博客seo交流
  • 哪个网站的课件做的好处公司营销网站建设
  • 创新的专业网站建设企业网站的基本功能
  • dede 网站内页标题修改阿里巴巴官网
  • 给人做传销网站新seo排名点击软件
  • 电商资讯网站有哪些seo优化网络
  • 做网站用虚拟主机怎么样怎么免费给自己建网站
  • 中心网站建设方法网址查询服务中心
  • WordPress动态页面缓慢网站运营优化培训
  • icp备案网站信息查询促销方案
  • 卖汽车怎么做网站南宁网站seo优化公司
  • 广东网站备案要多久建网站用什么软件
  • 广东网站设计招工.淘宝直通车推广怎么收费
  • 手工活300元一天双桥seo排名优化培训
  • 政务服务网站建设资金快速排名优化推广排名
  • 网站怎么做gps定位2345网址导航浏览器下载
  • 专业购物网站baidu百度首页官网
  • 网站建设可行性研究报告 baidu百度seo查询系统
  • 安阳市哪里做网站建设关键词什么意思
  • 东圃做网站的公司关键词首页排名优化
  • 阿里云服务器上传网站网络优化工程师工作内容
  • 制作简历的免费模板网站培训机构优化
  • 慈溪网站建设报价镇江网站