微信制作微网站开发高端网站建设熊掌号

news/2025/10/1 18:37:57/文章来源:
微信制作微网站开发,高端网站建设熊掌号,装饰公司简介,品牌网站建设 app建设1. 前言上篇文章 写到了 Python 最常用的 2 种设计模式#xff0c;单例模式和工厂模式本篇文章我们继续聊聊面试中#xff0c;Python 面试经常被问到的设计模式#xff0c;即#xff1a;构建者模式代理模式观察者模式2. 构建者模式构建者模式#xff0c;是将一个复杂对象的…1. 前言上篇文章 写到了 Python 最常用的 2 种设计模式单例模式和工厂模式本篇文章我们继续聊聊面试中Python 面试经常被问到的设计模式即构建者模式代理模式观察者模式2. 构建者模式构建者模式是将一个复杂对象的构造与表现进行分离利用多个步骤进行创建同一个构建过程可用于创建多个不同的表现简单来说就是将一个复杂对象实例化的过程按照自己的想法一步步设置参数定制一个我们需要的对象构建者模式一般由 Director(指挥官)和 Builder(建设者)构成其中Builder 用于定义目标对象部件的方法和参数Director 用于构造一个 Builder 的接口由 Director 去指导 Builder 生成一个复杂的对象以购买一辆车( 包含准备钱、看车、试驾、购买 4 个步骤)为例首先定义一个车的实体并定义属性变量class Car(object):def __init__(self):# 准备的钱self.money None# 去哪里看车self.address None# 试驾什么车self.car_name None# 购买时间是self.buy_time Nonedef __str__(self):return 准备了%s,去%s看车试驾了%s,下单了购买时间是%s % (self.money, self.address, self.car_name, self.buy_time)然后创建一个 Builder实例化一个 Car 对象针对上面 4 个步骤通过定义 4 个方法分别是准备多少钱、去哪里看车、试驾什么车、下单购买的时间# 创建者class CarBuilder(object):def __init__(self):self.car Car()def ready_money(self, money):准备的金额:param money::return:self.car.money moneysleep(0.5)return selfdef see_car(self, address):去哪里看车:param address::return:self.car.address addresssleep(0.5)return selfdef test_drive(self, car_name):试驾了什么车:param car_name::return:self.car.car_name car_namesleep(0.5)return selfdef buy_car(self, buy_time):下单时间:param buy_time::return:self.car.buy_time buy_timesleep(0.5)return self接着创建 Director创建 build 方法使用 Builder 一步步构建一个车对象并返回class Director(object):def __init__(self):self.builder Nonedef build(self, builder):self.builder builderself.builder. \ready_money(100万). \see_car(4S店). \test_drive(奥迪Q7). \buy_car(2020年8月1日)# 返回构建的对象return self.builder.car最后使用的时候只需要实例化一个 Builder 对象和 Director 对象然后通过 Director 对象构建一个车对象即可if __name__ __main__:# 实例化一个构建者对象car_builder CarBuilder()# 实例化一个负责人director Director()# 构建的对象car director.build(car_builder)print(car)3. 代理模式代理模式会引入一个代理对象以代替真实的对象解耦调用方和被调用方之间的联系Python 中的实现方式也简单易懂首先我们定义一个真实对象实体类并定义一个方法class RealObject(object):实际对象def __init__(self, arg):self.arg argdef foo(self):print(参数值为:, self.arg)然后创建一个代理对象在初始化函数 init 中拿到真实对象的实例定义一个相同的方法并调用真实对象的方法class ProxyObject(object):代理对象def __init__(self, real_object):self.real_object real_objectdef foo(self):# 实际对象调用self.real_object.foo()最后的使用方式如下if __name__ __main__:# 实例化代理对象proxy_object ProxyObject(RealObject(AirPython))# 调用方法proxy_object.foo()如此就实现了代理替换真实对象的目的4. 观察者模式观察者模式在 Python 中很常见会定义了对象之间的一对多依赖关系当被观察者(也称为主体对象)改变状态时其他所有观察者都会收到事件并处理预定的事情首先我们创建一个观察者在初始化函数中注册到被观察对象上并且自定义一个更新函数# 观察者class Observer(object):def __init__(self, subject):# 初始化观察者并注册subject.register(self)def update(self, arg1):获取通知print(观察者收到监听消息参数为, arg1)然后新建一个被观察对象创建注册观察者、注销观察者方法class Subject(object):def __init__(self):# 所有的观察者self.observers []self.foo Nonedef register(self, observer):添加观察者if observer not in self.observers:self.observers.append(observer)else:print(已经存在添加失败)def unregister(self, observer):注销观察者try:self.observers.remove(observer)except ValueError:print(注销观察者失败)接着通过模拟修改变量的值通知给所有的观察者def notify(self):通知所有的观察者for item in self.observers:item.update(self.foo)def modify_value(self):修改变量的值:return:self.foo 公众号AirPython# 修改后通知所有观察者self.notify()最后的使用方式如下if __name__ __main__:# 主体对象subject Subject()# 观察者observer Observer(subject)# 测试subject.modify_value()5. 最后这两篇一共介绍了 5 种设计模式它们在 Python 的各领域中被广泛使用也是面试中最常被问到的几种设计模式我已经将文中全部源码上传到后台关注公众号后回复「 设计模式 」即可获得全部源码如果你觉得文章还不错请大家 点赞、分享、留言下因为这将是我持续输出更多优质文章的最强动力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 AI 教育培训机构推荐及选择指南:企业 AI 教育培训 / AI + 教育 / AI 教育线下机构 / AI 企业教育培训机构 / AIGC 教育培训推荐这五家公司!

当前 AI 教育行业正处于快速发展阶段,但也面临着诸多亟待解决的问题。一方面,部分 AI 教育产品同质化严重,很多企业只是简单将传统教学内容搬到线上,缺乏基于 AI 技术的个性化教学设计,无法真正满足不同学生的学习…

2025升降机厂家 TOP 企业品牌推荐排行榜,滚珠、螺旋、伞齿轮、蜗轮、同步、电动、手摇、工业、自动化、齿条丝杆升降机推荐这十家公司!

在当前自动化、重型机械、精密设备等领域快速发展的背景下,丝杆升降机作为关键的机械执行机构,其市场需求持续增长。然而,行业内却面临着诸多亟待解决的问题。一方面,市场上丝杆升降机品牌数量众多,产品质量参差不…

沈阳企业自助建站系统wordpress精美网站

AWS警告客户,分布式攻击严重阻碍网络连接,殃及众多网站和应用软件,云巨头AWS遭到攻击后,今天其部分系统实际上断。网。 作者:佚名来源|2019-10-23 15:17 AWS警告客户,分布式攻击严重阻碍网络连接&#xff…

MTKdroidTools左下角: 白色、红色、蓝色、黄色、绿色不同颜色作用

前言全局说明一、说明 1.1 环境: Windows 7 旗舰版二、MTKdroidTools不同颜色 2.1 白色 MTKdroidTools未连接上手机(可能未安装驱动或手机没有连接到电脑)2.2 红色 MTKdroidTools未连接上手机2.3 蓝色 MTKdroidTools…

网站建设与管理实训报告总结文字排版都用哪些网站

目录 激活python虚拟环境,更新pip 通过pip 安装tensorflow 确定python版本: ​编辑安装tensorflow: ​编辑 为什么使用pip安装tensorflow? 激活python虚拟环境,更新pip 命令为python -m pip install --upgrade pip 通过pip 安装tensorf…

小米企业网站的优化建议百度指数分析报告案例

前言 在数字化的过程中,数据可视化变得越来越重要。用户喜欢通过酷炫的视觉效果和直观的数据展示来理解数据。可视化地图组件是数据可视化的重要组成部分。这些地图组件提供多样化的效果,能够更好地展示数据的关系和地理分布,直观地将数据与…

苏州昆山ai培训/2025苏州AI应用技能实战培训排行榜:聚焦落地,赋能企业数字化转型

人工智能已从概念走向广泛落地,企业对于能够实际应用AI工具解决业务问题的员工需求激增。理论与实践脱节的培训,无法满足当前市场的迫切需求。本文聚焦于苏州地区的AI应用型培训机构,从课程实战性、工具先进性、项目…

信友队考试总结

Round 1 虽然心情不好但是还是来记录一下。 cube 考虑到一个位置只有满足三个方向全部都可以填才能填,此时在立体图形种会生成若干个连通块,对于每个连通块 check 一下是否能够将输入给覆盖满,复杂度是 \(O(n^3)\) …

大沥南海网站建设网站营销建设

CleanMyMac X作为一款Mac电脑清理和优化工具,具有多种使用场景。以下是一些常见的使用场景: 清理系统垃圾文件:CleanMyMac X可以智能扫描Mac磁盘空间,清理系统冗余文件和各种软件应用产生的垃圾文件,如缓存、日志文件…

苏州昆山GEO优化/2025苏州GEO产品优化与谷歌出海营销服务商推荐:精准触达全球客户

随着出海浪潮的推进,GEO(地理定向)广告优化,尤其是Google Ads、Facebook Ads等平台的本地化精准投放,直接决定了企业海外营销的成败。优秀的优化师需精通广告平台规则、数据分析及不同地区的用户心理。本文盘点苏…

社区互助养老框架|基于java和小程序的社区互助养老系统小程序设计与实现(源码+数据库+文档)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

iPhone iPad苹果设备 远程控制windows - 教程

iPhone iPad苹果设备 远程控制windows - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

oppoR9m刷Linux系统: ColorOS系统OTA卡刷降级系统版本

前言全局说明经过在网上搜索,就两种方法:一种系统降级;另一种修改boot(有变砖的可能)一、说明 1.1 环境: Windows 7 旗舰版1.2 说明 经测试,只有 R9m_11_A.13_OTA_013_all_201603140221.zip 这个版本的可以直接r…

佛山网站制作的公司杭州十大室内设计公司

账号被锁定,在属性那里直接取消lock-out无法解锁。运行这条命令即可:ALTER LOGIN UserLogin WITH PASSWORD NewPassword UNLOCK MUST_CHANGE 转载于:https://www.cnblogs.com/bigshot-z/archive/2010/07/12/1775856.html

编程竞赛高频考点 - 指南

编程竞赛高频考点 - 指南2025-10-01 18:14 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

惠州专业做网站外贸网站怎样注册

http请求分为两大类:普通http请求(如百度请求)和ajax请求(跨域是出现在ajax请求) 同源策略:在浏览器发起ajax请求时,当前的网址和被请求的网址协议、域名、端口号必须完全一致,目的是…

网站学做糕点的课程网站优化建设桂林

目录前言数据定义数据说明1、第一层{}2、question 一个题目{}3、answer一个答题回复{}4、option 一个选项{}5、selectItems {}具体数据1、发题(终端请求)示例2、答题(图片答题,终端请求)互动或静态3、停止答题(终端请求,一般是互动…

oppoR9m刷Linux系统: 电脑安装驱动工具

前言全局说明一、说明 1.1 环境: Windows 7 旗舰版二、下载,驱动 2.1 QcomMtk_Driver_Setup_3.2.1.zip 下载链接1: https://pan.baidu.com/share/init?surl=cPu29pfk87fnaw5NCiwTEw?pwd=6rfm 下载链接2: https://w…

oppoR9m刷Linux系统: 手机获取系统root权限

前言全局说明系统降级完成,到了要获取root权限,让电脑上软件能操控手机一、说明 1.1 环境: Windows 7 旗舰版 OPPO r9m二、工具下载 下载到手机存储或TF存储卡上,并安装 2.1 kingoroot NewKingrootV4.85_C139_B255_…

php网站开发招聘需求分析网站标准字体

简介:KubeVela v1.3 在之前的多集群功能上进行了迭代,本文将为你揭示,如何使用 KubeVela 进行多集群应用的部署与管理,实现以上的业务需求。 作者:段威(段少) 在当今的多集群业务场景下&#…