请问一下,同一个功能,不同客户有微小的需求不同,导致一个系统一个客户,或者同个系统里面为了区分不同客户if else一大堆,维护工作量非常大,怎么样优雅从业务平台架构去设计这个系统,
实现一个业务平台可根据不同业务需求做二次开发,公共业务出现差异化时,可扩展差异部分,实现完美平台化,请大家帮忙头脑风暴一下,或者是否有现成的系统已实现我的困扰。谢谢
目前我想到的有:
1、模块可插拔,把一个功能拆分成各个小模块,二次开发小模块可以替换,通过配置实现不同客户的需求,从技术上可以用java的spi机制。
2、实现小模板块拼装成大模块,但如果模块之间数据的流转,配置设计很复杂,A模块的输出要成为B模块的输入,配置没有好的方案,同一业务各小模块修改数据库同一条数据时,为了提高性能怎么保证只操作一次数据库。