插拔式java_插拔式设计思想

插拔式java_插拔式设计思想插拔式设计思想 notify 文件夹下 init py 关键代码 结合了 importlib 动态导入 反射等知识点 importsettin all content formodule pathinsettin NOTIFY LIST module class name module path rsplit

插拔式设计思想

notify文件夹下:

__init__.py:

关键代码(结合了 importlib 动态导入、反射 等知识点)

import settings

import importlib

def send_all(content):

for module_path in settings.NOTIFY_LIST:

module, class_name = module_path.rsplit(‘.’, maxslipt=1)

# module = ‘notify.email’ class_name = ‘Email’

mod = importlib.import_module(module) # mod时模块名,例如email.py

cls = getattr(mod, class_name)

obj = cls()

obj.send(content)

email.py:

class Email(object):

def __init__(self):

pass # 省略相关配置操作

def send(self, content):

print(‘邮件通知:%s’ % content)

msg.py:

class Msg(object):

def __init__(self):

pass # 省略相关配置操作

def send(self,content):

print(‘短信通知:%s’%content)

wechat:

class WeChat(object):

def __init__(self):

pass # 省略相关配置操作

def send(self, content):

print(‘微信通知:%s’ % content)

.py:

class (object):

def __init__(self):

pass # 省略相关配置操作

def send(self,content):

print(‘通知:%s’%content)

settings.py

可以在这里开启或关闭功能

NOTIFY_LIST = [

‘notify.email.Email’,

# ‘notify.msg.Msg’, # 注销掉msg,可以关闭短信发送消息的功能

‘notify.wechat.WeChat’,

‘notify..’,

]

运行入口

notify文件夹之外/run.py

import notify

notify.send_all(‘测试信息’)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216516.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:40
下一篇 2026年3月18日 上午11:41


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号