zoukankan      html  css  js  c++  java
  • 插拔式设计

    中间件配置

    实现功能的插拔式设计,参考django 中间件, 参考django restframework

    img

    # conf.settings.py
    """
    @author RansySun
    @create 2019-10-31-21:06
    """
    NOTIFY_LIST = [
        'notify.email.Email',
        # 'notify.msg.Msg',
        'notify.wechat.WeChat',
        'notify.qq.QQ',
    ]
    
    
    # notify 
    # __init__.py
    from conf import settings
    import importlib
    def send_all(content):
        for module_path in settings.NOTIFY_LIST:
            # module = 'notify.email' class_name='Email
            module, class_name = module_path.rsplit('.', maxsplit=1)
    
            # mod就是模块名
            mod = importlib.import_module(module)
    
            # 利用反射获取模块中的变量名, 获取类地址
            clas = getattr(mod, class_name)
            obj_class = clas()
    
            # 使用多态
            obj_class.send_msg(content)
            # print(clas)
    # email.py
    class Email(object):
        def __init__(self):
            # 发送邮件准备工作
            ...
    
        def send_msg(self, content):
            print(f'邮件通知:{content}')
            
    # Msg.py
    class Msg(object):
        def __init__(self):
            # 发送短信准备工作
            ...
    
        def send_msg(self, content):
            print(f'短信通知:{content}')
            
    # QQ.py        
    class QQ(object):
        def __init__(self):
            # 发送QQ准备工作
            ...
    
        def send_msg(self, content):
            print(f'QQ通知:{content}')
    # WeChat.py 
    class WeChat(object):
        def __init__(self):
            # 发送微信准备工作
            ...
    
        def send_msg(self, content):
            print(f'微信通知:{content}')
    
    import notify
    if __name__ == '__main__':
        notify.send_all('明天周五了')
    

    img

    进行统一发送消息,当不需要送则在settings中注释掉就可以,方便管理,既可以插也可以拔!

    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    X11学习
    Linux 实用命令
    Notepad++ 添加右键菜单
    VS Code编译C/C++
    map与unordered_map的区别
    Rtt / vxworks 任务状态装换对比
    awesome computer vision repo
    英语每日金句
    不要在意七十亿分之一对另七十亿分之一的看法
    致知在格物,物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后
  • 原文地址:https://www.cnblogs.com/randysun/p/11774004.html
Copyright © 2011-2022 走看看