第6篇---Python设计模式之代理模式+含代码实现+学习python的赶快进

代理模式概念:

      为其他对象提供一种代理以控制对这个对象的访问。。 晦涩难懂的官方术语。。。简单来说,就是A和B想通话,必须通过C中间牵线,此时的A和B就都只给C说,C转换给对方。。

案例一:

      我们实现一个简单的保护代理来查看和添加用户。。也就是说,有一个敏感信息类,里面可以读用户信息,也可以添加用户信息。。一般人不能之间访问,若想访问必须通过代理类。 。代理这里做简要的验证,当前用户的访问权限。。。

class SensitiveInfo:
    def __init__(self):
        self.users = ['nick', 'tom', 'ben', 'mike']

    def read(self):       # 无需验证
        print('There are {} users: {}'.format(len(self.users), ' '.join(self.users)))

    def add(self, user):     # 需要验证
        self.users.append(user)
        print('Added user {}'.format(user))

class Info:
    '''SensitiveInfo的保护代理'''
    def __init__(self):
        self.protected = SensitiveInfo()
        self.secret = '123456'
    def read(self):
        self.protected.read()

    def add(self, user):
        sec = input("请输入你的密码:")
        self.protected.add(user) if sec == self.secret else print("That's wrong!")

if __name__ == '__main__':
    info = Info()

    while True:
        print('1: 读取用户, 2:添加用户, 3:终止')
        key = input('choose option:')
        if key == '1':
            info.read()
        elif key == '2':
            name = input("添加的用户名:")
            info.add(name)
        elif key == '3':
            exit()
        else:
            print('乱输入个锤子')

         本例中,添加用户时,需要在代理这里输入密码进行验证,然后才可以添加, 而读取用户时,无需验证。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

传道解惑也

打赏一下咯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值