当前位置:首页 > 科技  > 软件

Python实现适配器模式、装饰器模式、代理模式

来源: 责编: 时间:2024-04-11 09:03:56 291观看
导读今天介绍三种结构型设计模式:适配器模式、装饰器模式、代理模式。适配器模式适配器模式,用于将一个类的接口转换为另一个接口,以满足客户端的需求。在Python中,适配器模式可以通过继承或组合来实现。以下是一个使用继承实

今天介绍三种结构型设计模式:适配器模式、装饰器模式、代理模式。TzX28资讯网——每日最新资讯28at.com

TzX28资讯网——每日最新资讯28at.com

适配器模式

适配器模式,用于将一个类的接口转换为另一个接口,以满足客户端的需求。在Python中,适配器模式可以通过继承或组合来实现。TzX28资讯网——每日最新资讯28at.com

以下是一个使用继承实现适配器模式的示例:TzX28资讯网——每日最新资讯28at.com

class Target:    def request(self):        passclass Adaptee:    def specific_request(self):        passclass Adapter(Target, Adaptee):    def request(self):        self.specific_request()

在上面的示例中,Target是目标接口,Adaptee是需要适配的类,Adapter是适配器类,它继承了Target和Adaptee,并实现了request方法,将specific_request方法转换为request方法。TzX28资讯网——每日最新资讯28at.com

装饰器模式

装饰器模式,用于动态地给一个对象添加额外的功能,而不需要修改原始类的代码。在Python中,装饰器模式可以通过函数和类来实现。TzX28资讯网——每日最新资讯28at.com

以下是一个使用函数实现装饰器模式的示例:TzX28资讯网——每日最新资讯28at.com

def decorator(func):    def wrapper(*args, **kwargs):        # 在函数调用前添加额外的功能        result = func(*args, **kwargs)        # 在函数调用后添加额外的功能        return result    return wrapper@decoratordef target():    pass

在上面的示例中,decorator是装饰器函数,它接受一个函数作为参数,并返回一个新的函数wrapper,wrapper函数在调用原始函数之前和之后添加了额外的功能。@decorator语法是Python中的语法糖,它等同于target = decorator(target)。TzX28资讯网——每日最新资讯28at.com

代理模式

代理模式,用于控制对另一个对象的访问。在Python中,代理模式可以通过继承或组合来实现。TzX28资讯网——每日最新资讯28at.com

以下是一个使用组合实现代理模式的示例:TzX28资讯网——每日最新资讯28at.com

class Subject:    def request(self):        passclass RealSubject(Subject):    def request(self):        passclass Proxy(Subject):    def __init__(self):        self.real_subject = RealSubject()    def request(self):        # 在调用真实主题之前或之后添加额外的功能        self.real_subject.request()

在上面的示例中,Subject是主题接口,RealSubject是真实主题类,Proxy是代理类,它包含一个真实主题对象,并实现了request方法,可以在调用真实主题之前或之后添加额外的功能。TzX28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-82748-0.htmlPython实现适配器模式、装饰器模式、代理模式

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 每个程序员都应该了解的硬件知识

下一篇: 深度剖析:Dubbo使用Nacos注册中心的坑

标签:
  • 热门焦点
  • 官方承诺:K60至尊版将会首批升级MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版将会搭载天玑9200+处理器和独显芯片X7的同时,Redmi给出了官方承诺,K60至尊重大更新首批升级,会首批推送MIUI 15。也就是说虽然
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 一个注解实现接口幂等,这样才优雅!

    场景码猿慢病云管理系统中其实高并发的场景不是很多,没有必要每个接口都去考虑并发高的场景,比如添加住院患者的这个接口,具体的业务代码就不贴了,业务伪代码如下:图片上述代码有
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 最“俊美”淘宝卖家,靠直播和短视频圈粉,上架秒光,年销3000万

    来源 | 电商在线文|易琬玉编辑|斯问受访店铺:Ringdoll戒之人形图源:微博@御座的黄山、“Ringdoll戒之人形”淘宝店铺有关外貌的评价,黄山已经听累了。生于1985年的他,哪
  • 小米MIX Fold 3配置细节曝光:搭载领先版骁龙8 Gen2+罕见5倍长焦

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都得到了不少爆料,而小米新一代折叠屏旗舰——小米MIX Fold 3此前也屡屡被传
  • 2纳米决战2025

    集微网报道 从三强争霸到四雄逐鹿,2nm的厮杀声已然隐约传来。无论是老牌劲旅台积电、三星,还是誓言重回先进制程领先地位的英特尔,甚至初成立不久的新
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
Top