服务登记处

his.almanac的Python项目详细描述


一个简单的服务注册中心,在his中使用,但在其他地方很有用。

注册的服务必须扩展抽象基类,该基类充当契约或接口。

用法

服务的定义如下

importabcclassExampleContract(metaclass=abc.ABCMeta):@abc.abstractmethoddefmethod(self):passclassExampleService(ExampleContract):defmethod(self):print("I'm an example")

然后注册服务的实例:

fromalmanacimportservicess=ExampleService()services.register(s)

最后,要检索注册服务,您需要使用合同:

fromalmanacimportservicess=services.get(ExampleContract)

错误和异常

如果尝试将对象注册为没有抽象父级的服务,则它将引发 无效服务类型异常。

尝试获取尚未注册的服务将引发servicenotfounderror异常。

尝试使用抽象基类(例如契约)以外的任何内容获取服务将导致 系统引发无效合同异常

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在jframe中模糊的背景上创建一个透明的矩形   java和super之间有区别。getX()和简单的x?   使用ant的java删除eclipse项目   java找不到。txt文件?   多线程Java wait()notify()   带按钮的java透明控件   java Android Studio 3无法构建我的项目   性能最佳(最快且节省内存)的Java收集/数据结构,可同时插入和删除项   spring+hibernate集成中的java ClassNotFoundException   java如何在Android上建立异步URL连接?   java当我选择contacts选项卡时,选项卡栏消失了   java根据数据库中的日期获取结果,不考虑时间   java如何访问WebChromeClient中的方法?   java如何在安卓中使用两行列表项?   spring Swagger Java日期格式验证引发异常