第6篇---Python设计模式之代理模式+含代码实现+学习python的赶快进
程序员文章站
2022-04-30 08:21:46
...
代理模式概念:
为其他对象提供一种代理以控制对这个对象的访问。。 晦涩难懂的官方术语。。。简单来说,就是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('乱输入个锤子')
本例中,添加用户时,需要在代理这里输入密码进行验证,然后才可以添加, 而读取用户时,无需验证。。
上一篇: 在xcode中创建初始化模板
下一篇: linux 文件统计操作