# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
"""
@author: 涛
这是代理模式的一个应用场景。(参考了《设计模式之禅》)
·代理模式的主要作用是在委托类的方法被执行的前后做预处理或善后处理。比如此场景中玩家
委托游戏代练帮他升级,每升一级玩家要付钱给代练者。
·这样做可以让产品设计更符合逻辑,我想架构师的任务之一就是设计一个符合人类思考逻辑的
系统框架吧?
"""
class IGamePlayer(object):
def login(user, password):
pass
def killBoss():
pass
def upLevel():
pass
class Player(IGamePlayer):
def __init__(self, name):
self.name = name
def login(self, user, password):
print '%s 登录' % self.name
def killBoss(self):
print '%s 在打怪' % self.name
def upLevel(self):
print '%s 升级了' % self.name
class Proxy(IGamePlayer):
def __init__(self, player):
self.player = player
def login(self, user, password):
self.player.login(user, password)
def killBoss(self):
self.player.killBoss()
def upLevel(self):
self.player.upLevel()
print '可以向委托人收钱了'
if __name__ == '__main__':
p1 = Player('涛')
pro = Proxy(p1)
pro.login('aa', '1123581321')
pro.killBoss()
pro.upLevel()
05-21
164万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
04-04
2万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)