大话设计模式(Python版)--代理模式
2016-10-30 22:44
274 查看
没有代理的代码
#!/usr/bin/env python
class Pursuit:
def __init__(self, girl):
self.girl = girl
def GiveDolls(self):
print(self.girl.name,",give you a doll")
def GiveFlowers(self):
print(self.girl.name,",give you flowers")
def GiveChocolate(self):
print(self.girl.name,",give you chocolate")
class Girl:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def main():
lily = Girl()
lily.name = 'lily'
tom = Pursuit(lily)
tom.GiveDolls()
tom.GiveFlowers()
tom.GiveChocolate()
if __name__ == '__main__':
main()
只有代理的代码
#!/usr/bin/env python
class Proxy:
def __init__(self, girl):
self.girl = girl
def GiveDolls(self):
print(self.girl.name,",give you a doll")
def GiveFlowers(self):
print(self.girl.name,",give you flowers")
def GiveChocolate(self):
print(self.girl.name,",give you chocolate")
class Girl:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def main():
lily = Girl()
lily.name = 'lily'
tom = Proxy(lily)
tom.GiveDolls()
tom.GiveFlowers()
tom.GiveChocolate()
if __name__ == '__main__':
main()
符合实际的代码:
#!/usr/bin/env python
from abc import ABCMeta, abstractmethod
class IGiveGift:
__metaclass__ = ABCMeta
def GiveDolls(self):
pass
def GiveFlowers(self):
pass
def GiveChocolate(self):
pass
class Pursuit(IGiveGift):
def __init__(self, girl):
self.girl = girl
def GiveDolls(self):
print(self.girl.name,",give you a doll")
def GiveFlowers(self):
print(self.girl.name,",give you flowers")
def GiveChocolate(self):
print(self.girl.name,",give you chocolate")
class Proxy(IGiveGift):
def __init__(self, girl):
self.boy = Pursuit(girl)
def GiveDolls(self):
self.boy.GiveDolls()
def GiveFlowers(self):
self.boy.GiveFlowers()
def GiveChocolate(self):
self.boy.GiveChocolate()
class Girl:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def main():
lily = Girl()
lily.name = 'lily'
tom = Proxy(lily)
tom.GiveDolls()
tom.GiveFlowers()
tom.GiveChocolate()
if __name__ == '__main__':
main()
#!/usr/bin/env python
class Pursuit:
def __init__(self, girl):
self.girl = girl
def GiveDolls(self):
print(self.girl.name,",give you a doll")
def GiveFlowers(self):
print(self.girl.name,",give you flowers")
def GiveChocolate(self):
print(self.girl.name,",give you chocolate")
class Girl:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def main():
lily = Girl()
lily.name = 'lily'
tom = Pursuit(lily)
tom.GiveDolls()
tom.GiveFlowers()
tom.GiveChocolate()
if __name__ == '__main__':
main()
只有代理的代码
#!/usr/bin/env python
class Proxy:
def __init__(self, girl):
self.girl = girl
def GiveDolls(self):
print(self.girl.name,",give you a doll")
def GiveFlowers(self):
print(self.girl.name,",give you flowers")
def GiveChocolate(self):
print(self.girl.name,",give you chocolate")
class Girl:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def main():
lily = Girl()
lily.name = 'lily'
tom = Proxy(lily)
tom.GiveDolls()
tom.GiveFlowers()
tom.GiveChocolate()
if __name__ == '__main__':
main()
符合实际的代码:
#!/usr/bin/env python
from abc import ABCMeta, abstractmethod
class IGiveGift:
__metaclass__ = ABCMeta
def GiveDolls(self):
pass
def GiveFlowers(self):
pass
def GiveChocolate(self):
pass
class Pursuit(IGiveGift):
def __init__(self, girl):
self.girl = girl
def GiveDolls(self):
print(self.girl.name,",give you a doll")
def GiveFlowers(self):
print(self.girl.name,",give you flowers")
def GiveChocolate(self):
print(self.girl.name,",give you chocolate")
class Proxy(IGiveGift):
def __init__(self, girl):
self.boy = Pursuit(girl)
def GiveDolls(self):
self.boy.GiveDolls()
def GiveFlowers(self):
self.boy.GiveFlowers()
def GiveChocolate(self):
self.boy.GiveChocolate()
class Girl:
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def main():
lily = Girl()
lily.name = 'lily'
tom = Proxy(lily)
tom.GiveDolls()
tom.GiveFlowers()
tom.GiveChocolate()
if __name__ == '__main__':
main()
相关文章推荐
- 大话设计模式之Python实现【代理模式】
- 大话设计模式-代理模式
- 大话设计模式(三)动态代理设计模式
- 大话设计模式之四 代理模式
- 大话设计模式(golang) 四、代理模式
- 《大话设计模式》之代理模式
- 《大话设计模式》读书笔记四——代理模式
- 《大话设计模式》—— 读后感 (7)为别人做嫁衣——代理模式
- 大话设计模式-----(二)装饰模式、代理模式
- 大话设计模式C++版——代理模式
- python设计模式(四)--代理模式(中)
- 大话设计模式之代理模式(二)与JDK动态代理原理
- Python的结构型设计模式之代理模式
- 大话设计模式-Chapter7 代理模式
- Python设计模式(5)-代理模式
- 大话设计模式(Python版)--观察者模式
- python设计模式(四)--代理模式(上)
- 大话设计模式-代理模式
- Python设计模式之代理模式实例
- Python设计模式(十二)【代理模式】