首页 > 其他分享 >结构型模式-静态代理模式

结构型模式-静态代理模式

时间:2023-06-26 16:36:41浏览次数:40  
标签:__ target 静态 ITeacher self 代理 模式 teach 结构型

# 模式类型:结构性模型
# 模型方法:静态代理模式
# 作用:在不修改目标代码的情况下,可以控制目标代码的访问,可以在其前后添加自己的业务代码
# 使用场景:监控。日志,限流

from abc import ABCMeta, abstractmethod


class ITeacher(metaclass=ABCMeta):
    """教师接口"""

    @abstractmethod
    def teach(self):
        pass


class TeacherProxy(ITeacher):
    target = None

    def __init__(self, target: ITeacher):
        self.target = target

    def teach(self):
        print("课前准备工作")
        self.target.teach()
        print("课后结尾工作")


class TeacherLi(ITeacher):

    def teach(self):
        print("李老师讲课")


if __name__ == "__main__":
    # 创建目标对象
    li_teacher = TeacherLi()

    # 创建代理对象,并将被代理对象传给代理对象
    teacher_proxy = TeacherProxy(li_teacher)

    # 通过代理对象,调用被代理对象方法
    teacher_proxy.teach()

  

标签:__,target,静态,ITeacher,self,代理,模式,teach,结构型
From: https://www.cnblogs.com/fuchenjie/p/17506049.html

相关文章

  • epoll的两种触发模式
    epoll有两种模式,EdgeTriggered(简称ET)和LevelTriggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知. 以代码来说明问题: 首先给出server的代......
  • java使用AES算法的CBC模式加密
    https://blog.csdn.net/qq_25816185/article/details/81626499?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-81626499-blog-121345545.235%5Ev38%5Epc_relevant_sort&depth_1-utm_source=distribute......
  • redis 主从复制如何实现的? redis 的集群模式如何实现? redis 的 key 是如何寻址的?
    1.redis主从复制如何实现的?1.1 连接建立阶段1.2  数据同步阶段1.3命令传播阶段是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。需要注意,主从复制的开启,完全是在从节点发起的;不需......
  • Vue项目难点解析---分页器静态组件【原理】
    分页器:为什么使用分页器?答案:按需加载为啥不直接使用ElementUI啥的第三方组件呢?答案:掌握自定义分页功能,更好的自定义分页规则呢,实现功能。实现原理:分页器实现条件?知道当前第几页:pageNo知道分页器一共需要展示多少条数据:total知道每一页需要展示数据个数:pageSize知道连续的页码数......
  • 1.UDP模式
    不同节点pod间通信(UDP模式)发送流程1.发送数据报文,发现是不同网段,但找不到路由,转给默认网关cni02.cni0查看宿主机路由表:去往目的pod所在网段转给tun设备flannel0,而后由flanneld进程截获,由它指导内核封装数据报文,由于flanneld进程在启动之初会收集各pod网段与k8s节点网卡对应......
  • 07.生成器模式(Builder)
    使用生成器模式来解决问题定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式的结构和说明Builder:生成器接口,定义创建一个Product对象所需的各个部件的操作。ConcreteBuilder:具体的生成器实现,实现各个部件的创建,并负责组装Produ......
  • 设计模式之适配器模式--新能源的发展
    前言本文主要讲述适配器模式,文中使用通俗易懂的案例,使你更好的学习本章知识点并理解原理,做到有道无术。一.什么是适配器模式适配器模式是23种设计模式中结构型模式的一种,将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类......
  • Win32k 是 Windows 操作系统中的一个核心组件,它负责处理图形显示、窗口管理和用户交互
    Win32k是Windows操作系统中的一个核心组件,它负责处理图形显示、窗口管理和用户交互等功能。在Windows中,Win32k.sys是一个内核模式驱动程序,它提供了访问图形子系统的接口。因此,Win32k具有较高的权限和特权。作为一个内核模式驱动程序,Win32k有比普通用户程序更高的权限级别......
  • 单例模式的N种写法
    1.饿汉式优点:写法简单,线程安全缺陷:占用内存高,对象还没有被使用已经被创建出来了。2.懒汉式优点:写法简单,对象使用时才被创建。缺陷:线程不安全。3.加synchronized 优点:写法简单,对象使用时才被创建。缺陷:接口性能下降明显。4.双重检查优点:对象使用时才被创建。缺......
  • 利用chatgpt解决单主机多实例模式Redis主从配置的报错问题:Error condition on socket
    今天在配置redis主从配置时,从实例报错:ErrorconditiononsocketforSYNC:Connectionrefused我是在单体机上配置三个实例,实现redis的一主二从。1.首先,创建三个文件夹,名字分别叫7001、7002、7003(我喜欢将应用安装在tmp下)#进入/tmp目录cd/tmp#创建目录mkdir70017......