背景 最近同事告诉我一个很有趣的需求:让用户(应用场景中,一般为其他开发者)自己填入Java代码片段,代码片段的内容为已经规定好的模板类的继承类,实现模板类定义的方法.我们的项目要实现动态编译代码片段,存储代码片段和用户操作记录的映射关系,并能够在业务中载入代码片段执行. 这有点像我们提供一个模板模式的架构,只不过模板类的实现类由外部接口填入代码片段动态实现.相较让其他开发者直接参与项目开发,无疑: 降低了侵入风险 向其他开发者隐藏了大部分实现 降低操作难度和开发门槛 便于管理 -- 这相当于要…