美文网首页
保护代理模式

保护代理模式

作者: sunshining小迪儿 | 来源:发表于2018-12-21 13:51 被阅读0次
import abc

# 客户端直接实例化SensitiveInfo类可以使用全部方法,为增加安全,将SensitiveInfo定义为抽象基类,不能直接实例化
class SensitiveInfo(metaclass=abc.ABCMeta):
    def __init__(self):
        self.users = ['nick', 'tom', 'ben', 'mike']

    def read(self):
        print('There are {} users: {}'.format(len(self.users), self.users))

    @abc.abstractmethod
    def add(self, user):
        self.users.append(user)
        print('Add user {}'.format(user))


class Info(SensitiveInfo):
    def __init__(self):
        super(Info, self).__init__()
        self.secret = '31415926'  # 将密码放置到文件或数据库中

    def add(self, user):
        passwd = input('请输入密钥')
        super().add(user) if passwd == self.secret else print('passwd is wrong')


if __name__ == '__main__':
    info = Info()
    info.read()
    info.add('jay')
    info.read()

输出结果

There are 4 users: ['nick', 'tom', 'ben', 'mike']
请输入密钥31415926
Add user jay
There are 5 users: ['nick', 'tom', 'ben', 'mike', 'jay']

相关文章

  • JavaScript 设计模式(中)——3.代理模式

    3 代理模式 代理模式:为一个对象提供一个代用品或占位符,以便控制对它的访问。代理模式分为保护代理和虚拟代理,保护...

  • 设计模式-之-代理模式和面向接口编程

    一、代理模式简介 代理设计模式优点:(1) 保护真实对象(2) 让真实对象职责更明确.(3) 扩展 代理设计模式(...

  • 保护代理模式

    输出结果

  • 代理模式

    代理模式的典型就是springAOP代理模式的目的有两个:保护目标对象,增强目标对象分类:静态代理和动态代理。 静...

  • 保护代理

    保护代理的实现方式有两种:静态代理和动态代理。首先代理模式的作用是什么呢?控制访问。 代理模式 场景为其他对象提供...

  • JavaScript设计模式--代理模式

    一、定义 代理模式:为一个对象提供一个代用品或占位符,以便控制对它的访问。代理分为:保护代理和虚拟代理保护代理:用...

  • 代理模式

    代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。 代理种类:保护代理、动态代理【iOS没有】...

  • 设计模式

    1.代理模式 定义:为其他对象提供一种代理,以控制对这个对象的访问。 远程代理 虚拟代理 保护代理 智能引用代理静...

  • 代理设计模式

    代理设计模式:1.真实对象2.代理对象3.抽象对象(抽象功能) 代理设计模式优点:1.保护真实对象2.让真实对象职...

  • 设计模式——代理模式

    1、代理模式是为一个对象提供一个代用品或占位符,以便控制对它的访问。2、保护代理和虚拟代理1)代理 B 可以帮助 ...

网友评论

      本文标题:保护代理模式

      本文链接:https://www.haomeiwen.com/subject/jkkmkqtx.html