关于设计中“可拔插”的理解,求教

项目中,客户提出了要求,基于软件可扩展性的考虑,希望能够设计成可拔插的模式
思考后,有下面一种方案:
使用xml配置文档,设定需要的模块:如积分系统,奖励系统等,并设定部分参数等信息
程序中在服务器启动时加载配置信息,然后利用工厂模式生产对象

然后思路就定格在这里,所谓的可拔插,是不是就意味着利用外部配置的形式
是否还有其他思路实现 所谓的可拔插 呢?

外部配置是一定的,或者可以自动扫描。

考虑到插拔,那么就需要强化“接口”的理解了,如何抽象业务过程提炼得到一个共同的接口是这个过程的核心。

呵呵 我想试下有没有其他更优的思路
看来可能这样才是最理想的

接口的提炼确实是设计中的难点,大概也只能靠经验来弥补了

感谢IceQi

接口恰恰是最简单的方式了,除此以外你也可以用反射,不过那样涉及到协议等等的问题会更麻烦的。

可以参考OSGi的架构方式、程序设计模型。OSGi在应付这方面的需求时,有着天生的优势。
另外也可以考虑portal,把“积分系统,奖励系统等”做成一个个portlet,组装到portal里去,不需要时亦可方便卸下。
和OSGi比,portal/portlet方案在“可拔插模块”上,“粒度更粗”。