《精通Python设计模式》学习结构型之代理模式

这种模式,总会让人想到SRPING中的AOP,

不同语言有不同的实现方式吧。

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:
    def __init__(self):
        self.protected = SensitiveInfo()
        self.secret = '0xdeadbeaf'

    def read(self):
        self.protected.read()

    def add(self, user):
        sec = input('What is the secret?')
        self.protected.add(user) if sec == self.secret else print("That's wrong!")
            

def main():
    info = Info()

    while True:
        print('1. read list |==| 2. add user |==| 3. quite')
        key = input('choose option:')
        if key == '1':
            info.read()
        elif key == '2':
            name = input('choose username:')
            info.add(name)
        elif key == '3':
            exit()
        else:
            print('unkown option: {}'.format(key))

if __name__ == '__main__':
    main()

    

猜你喜欢

转载自www.cnblogs.com/aguncn/p/9420924.html