代码改变世界

Ulipad-框架分析(一)

2011-02-21 09:55  ubunoon  阅读(379)  评论(0编辑  收藏  举报

ulipad是一个limodou用python+wxPython编写的IDE,功能很强大,支持多种语言,自定义themes,内建python的shell等等,但是也有一些缺陷,比方说调试功能比较麻烦,代码风格也比较杂散,开发文档比较少,不容易进行二次开发,最新版本为4.0。有关ulipad的更多信息可以查看:

http://hi.baidu.com/limodou/

http://code.google.com/p/ulipad/

ulipad采用mixin方法进行主要框架的搭建,然后逐渐将界面窗口,菜单等添加进行去,添加的方法非常类似wordpress的插件编写方式。所谓的mixin方式,与C++的多重继承类似,只是python有自己的多重继承方式,又是动态语言,容易绑定的关系,因此更加灵活些。

ulipad的主要实现功能在modules和mixins两个文件夹下面,modules是主要框架实现功能,mixins目录下是各种功能的实现,整个结构不是特别清晰,未能够将界面与功能也区分开来。

自然,整个技术核心是mixin,在modules/mixin.py中的Mixin类实现的,有一个类变量,__mixinname__,表示继承自Mixin子类名称,然后通过调用initmixin方法来将类中的信息添加到__mixins_funcs_time_set__和__mixinset__两个dict中,通过__mixinname__来区分不同的类,不明白,为什么ulipad不使用metaclass技术。这个类提供了基本的插件调用方法,callplugin_once,callplugin,execplugin_once以及execplugin四个方法。

通过mixin.py中的setMixin和setPlugin方法,添加mixin方法和plugin方法。