stevedore——加载方式

 

 在Setuptools entry points 里会注册一个命名空间 ,它定义了插件代码所期望的API。 每一个 entry point 有一个名字,这个名字在命名空间里允许不唯一。 stevedore 管理类使用 pkg_resources 来应用匹配到的规则。

驱动———单一名字,单一entry point

驱动程序支持资源资源视图的抽象 ,因此应用程序可以使用不同类型的资源。 例如, 驱动程序可以连接到数据库引擎,加载不同的文件格式,或者与来自不同提供商的类似web服务进行通信。 对于给定的应用程序,可以使用许多驱动程序,但是在应用程序和驱动程序之间的接口中隐含着这样的情况,即只有一个驱动程序用于管理给定的资源。

驱动程序模式的示例包括 :

SQLAlchemy所使用的数据库客户端库

libcloud使用的云供应商API客户端

stevedore.driver.DriverManager

钩子 ——单一名字,多entry points

根据应用程序中发生的事件调用钩子、信号或回调。 应用程序的所有钩子可以共享单个名称空间(例如,my.application.hooks),并为触发事件使用不同的名称(例如,启动和预提交)。 多个入口点可以在名称空间中共享相同的名称,这样就可以在发生事件时调用多个钩子。

钩子模式的例子包括 :

stevedore.hook.HookManager

扩展——多名字,多entry points

扩展应用程序的更一般的形式是通过发现附加模块来加载额外的功能,这些模块使用最小的API在运行时注

入自己。 扩展通常希望得到通知,它们已经被加载并正在被使用,因此它们可以执行初始化或设置步骤。 扩展可以替换核心功能或添加进去。

扩展模式的示例包括 :

stevedore.extension.ExtensionManager

 

转载于:https://my.oschina.net/jennerlo/blog/1579502

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值