2019/12/08 02-插件化开发和接口

在这里插入图片描述
插件化开发
built-in function有想要的所有内建函数

在这里插入图片描述在这里插入图片描述
假如有一个功能是A类提供的
在这里插入图片描述
现在想要加载这个模块,变成一种交互式的导入,内建函数__import__导入·

说明这个模块被加载了,就可以提取里面的类
在这里插入图片描述在这里插入图片描述
也可以这么写,这就是交互之后,通过一种动态的获取这个模块(类名,模块名,函数名),拿到相应的这些方法,这些对象,而不是通过之前的import或者from语句,是写死的/在这里插入图片描述
鼓励用下面在这个
在这里插入图片描述
** __import__实际上就是import语句**在这里插入图片描述
但是推荐使用import_module
在这里插入图片描述
这个内建函数就是通过动态的方式,去编程导入模块

类似缺什么补什么,就是一种插件化的
这样的效果是一样的,看似是一种函数,这个函数可以根据输入内容的变化来动态去加载相应的对象的,这是一种交互式的,跟以前的写死不一样,这就是插件化开发思想

在这里插入图片描述在这里插入图片描述
写了很多模块是不需要一下子加载起来的,每一个模块在加载的过程中,都会生成一个模块对象,每个模块内部会把类和函数变成对象,对内存来说就是个负担,用都没用就加载的
在这里插入图片描述、建议使用这种在这里插入图片描述在这里插入图片描述
插件化编程需要依赖的是反射(运行时获得类型的信息
动态import,推荐使用importlib模块,动态加载指定的模块
多线程:用户输入,不影响程序的继续处理,可以结合在一起

在这里插入图片描述
要么全部加载,要么按需加载
在这里插入图片描述
如果把模块全部加载起来,内存耗费是很大的,只需要把马上要用的插件启动起来即可
比如pycharm有些view里就没有加载起来
在这里插入图片描述
有些功能需要的时候才加载,叫懒加载,但是有些功能是必须要马上加载的,这些模块随着程序启动立即加载起来

比如notepad++,就是外壳加上文本编辑器,其他功能就是插件
在这里插入图片描述
只要和写插件的人约定好,互相调用接口,这些插件在临时用的时候加载即可,等于一种交互模式,项目越大,插件化开发就很重要,在这里插入图片描述
一般采用最简单的方式,需要的时候加载,不需要的时候就不加载,插件往往是用来增强原来软件功能的,有些软件虽然可以做的很好,但是非常专业的还是做不好(没必要为了这个专业功能招聘一批专业人事,没必要)
插件化开发,就可以让专业的人做专业的事情

比如photoshop在图像处理很强,提供了一种插件机制,对有一些图片 处理也无能为力毕竟不是在这个方向上最专业的,只能提供一个大概需要的平面处理功能,但是对一些很专业的滤镜也搞不定,有专门的公司做这些插件,一安装即可,安装到photoshop指定的目录即可
在这里插入图片描述
必须启动的包在启动时就加载即可,启动的时候会扫描自己的安装目录,就会加载这些插件,启动太多,内存消耗完了,就会使用交换内存,linux就是虚拟内存,虚拟内存在磁盘上,比如2g内存跑windows,内存不够就放到硬盘上,卡是因为不停的吧数据搬到内存里 ,等待消耗时间在这里插入图片描述
懒加载是暂时省内存,坏处是加载的时候需要等待加载,加载完了才能使用,究竟是启动时加载还是运行时加载就看你需求了,启动时加载如果加载太多就会耗费启动时间
也可以启动时加载必须的,还有一些较为常用的,在使用前就加载,先把程序起来

在这里插入图片描述在这里插入图片描述
两个概念,一个插件一个接口,插件是可以加入当前的系统当中,插件最后是软件的组成部分,只要符合标准就可以运行了,但插件必须定义标准,这个标准往往就是定义接口,只要符合标准,就可以插入进来,这样就可以把系统设计的更加简单化,比如自行车,只需要把架子做好,剩下什么轮子,都只需要作为插件,只需要把你该做的事情做好。所以对于生产的厂家,就可以简化,基本功能实现,就可以通过插件来替换和增强。
接口是插件要在系统上运行,插件必须按照规范做,规范就是接口,接口就是一种规范,不同系统之间,不同函数之间,不同模块之间,不同类之间,如何互相耦合在一起,接口是往往要暴露出来的,暴露这个功能进行调用,说白了就是函数,所以开发过程往往是通过函数来解决的。
接口是规范,但是实现归实现,实现就可以使用的,接口是一种纯粹的定义,约定了必须实现的功能,但是不关心怎么实现的,按照接口定义实现真正使用的函数,真正把插件变成原来软件的一部分

在面向对象往往提供几个概念,插件和接口,插件化开发不一定非要用,接口一般听得很多,暴露接口互相调用,接口是一种操作规范,要实现接口,每一种语言定义的接口规范都不一样,接口调用都是一样的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值