python模式设计思想

python设计模式(十一):代理模式模式

2019-02-12  本文已影响15人  Python之战

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

组成:

抽象角色:通过接口或抽象类声明真实角色实现的业务方法。

代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。

真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。

实例code:

# -*- coding:utf-8 -*-


class Jurisdiction:
 """权限类"""

 def level1(self):
        print('权限等级1')

 def level2(self):
        print('权限等级2')

 def level3(self):
        print('权限等级3')

 def level4(self):
        print('权限等级4')


class Proxy:

 def __init__(self, name):
        self.user = name
        self._jurisdiction = Jurisdiction()

 def leve(self):

 if self.user == 'a':
 return self._jurisdiction.level1()
 elif self.user == 'b':
 return self._jurisdiction.level2()
 elif self.user == 'c':
 return self._jurisdiction.level3()
 elif self.user == 'd':
 return self._jurisdiction.level4()
 else:
            print('无此权限')


if __name__ == '__main__':
    test = Proxy('a')
    test.leve()
    test.user = 'b'
    test.leve()
    test.user = 'c'
    test.leve()
    test.user = 'd'
    test.leve()
    test.user = 'e'
    test.leve()

-----------------------
权限等级1
权限等级2
权限等级3
权限等级4
无此权限

应用场景:

image
上一篇 下一篇

猜你喜欢

热点阅读