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

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

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

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

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

适配器模式

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

以下是一个使用继承实现适配器模式的示例:NgI28资讯网——每日最新资讯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方法。NgI28资讯网——每日最新资讯28at.com

装饰器模式

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

以下是一个使用函数实现装饰器模式的示例:NgI28资讯网——每日最新资讯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)。NgI28资讯网——每日最新资讯28at.com

代理模式

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

以下是一个使用组合实现代理模式的示例:NgI28资讯网——每日最新资讯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方法,可以在调用真实主题之前或之后添加额外的功能。NgI28资讯网——每日最新资讯28at.com

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

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

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

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

标签:
  • 热门焦点
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • 7月安卓手机性价比榜:努比亚+红魔两款新机入榜

    7月登场的新机有努比亚Z50S Pro和红魔8S Pro,除了三星之外目前唯二的两款搭载超频版骁龙8Gen2处理器的产品,而且努比亚和红魔也一贯有着不错的性价比,所以在本次的性价比榜单
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 小红书1周涨粉49W+,我总结了小白可以用的N条涨粉笔记

    作者:黄河懂运营一条性教育视频,被54万人“珍藏”是什么体验?最近,情感博主@公主是用鲜花做的,火了!仅仅凭借一条视频,光小红书就有超过128万人,为她疯狂点赞!更疯狂的是,这
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 华为Mate60标准版细节曝光:经典星环相机模组回归

    这段时间以来,关于华为新旗舰的爆料日渐密集。据此前多方爆料,今年华为将开始恢复一年双旗舰战略,除上半年推出的P60系列外,往年下半年的Mate系列也将
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
  • 中关村论坛11月25日开幕,15位诺奖级大咖将发表演讲

    11月18日,记者从2022中关村论坛新闻发布会上获悉,中关村论坛将于11月25至30日在京举行。本届中关村论坛由科学技术部、国家发展改革委、工业和信息化部、国务
Top