定义:前篇初期中,我们讲过结构型模式主要解决的问题是:
它具有的特性:
如果你接了一个别人的业务,需要封装一下别人的业务,然后加工处理一下(其实就只是对他们的接口进行做一层访问代理),然后又对外提供给另一个商家。
此时你的角色就是一个中间商赚差价!你在一个客户端和需要被代理的对象中间扮演中介的作用。
和我们的nginx的正向代理和反向代理其实是一个意思!都是代理,只是代理的层面不一样。
抽象角色:对供货商提供业务抽象
真实角色:实现抽象角色,实现的第三方真实的业务逻辑,并添加自己的业务逻辑处理,后续供代理角色调用
代理角色:(中间商)实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自身操作。
#!/usr/bin/evn python
# coding=utf-8
from abc import ABCMeta, abstractmethod
class ximalaye_open_api(metaclass=ABCMeta):
'''抽象角色,把业务进行抽象'''
@abstractmethod
def buy_vip(self): pass # print("购买VIP会员")
@abstractmethod
def buy_album(self): pass # print("购买收费专辑")
class mystie_open_api(ximalaye_open_api):
'''抽象角色,把业务进行抽象'''
def buy_vip(self):
print("开始代理")
print("调用喜马拉雅开放平台API-购买VIP会员")
def buy_album(self):
print("开始代理")
print("调用喜马拉雅开放平台API-购买收费专辑")
# 实现代理对象,且调用相关的代理对象的方法
class open_api_proxy(ximalaye_open_api):
#
def __init__(self):
# 实例化中间代理层
self.mysite_api = mystie_open_api()
def buy_vip(self):
self.mysite_api.buy_vip()
def buy_album(self):
self.mysite_api.buy_album()
if __name__ == '__main__':
proxy = open_api_proxy()
proxy.buy_vip()
proxy.buy_album()
上面的示例中:
简书:https://www.jianshu.com/u/d6960089b087
掘金:https://juejin.cn/user/2963939079225608
小钟同学 | 文 【原创】| QQ:308711822
1:本文相关描述主要是个人的认知和见解,如有不当之处,还望各位大佬指正。 2:关于文章内容,有部分内容参考自互联网,如有链接会声明标注;如没有及时标注备注的链接的,如有侵权请联系,我会立即删除处理哟。
原文作者:程序员小钟同学;如有侵权,请联系管理员删除。