框架设计上的十点基本常识

最近一直在开发框架,对框架的设计有很多的疑惑,梁飞大神的这篇文章让我有了更多认识.这里收藏一下.也推荐阅读原文 :)

  1. API 和 SPI 分离(用户 API 和 扩展 API 分离)

  2. 实体域(核心领域模型), 服务域,会话域

  3. 在重要的过程上设置拦截接口(过滤器),允许外置行为,这是基本扩展方式

  4. 在重要的状态上留出监听事件接口

  5. 接口职责要单一,具有可组合性

  6. 微核插件式,平等对待第三方。微核不带有功能性,而是一个生命周期和集成容器,例如Spring 的 BeanFactory。
    平等对待第三方,则是作者要把自己当扩展者。

  7. 不要控制外部对象的生命周期,框架只需使用这些实例

  8. 可配置一定可编程,保持友好的默认约定

  9. 区分命令与查询,查询一定幂等、无副作用,命令一定是 void。方法尽量前置断言,类似 Spring。

10 增量实扩展,而不是扩展式扩展,不要扩充原始核心概念。

参考:梁飞博客

http://javatar.iteye.com/blog/706098

http://javatar.iteye.com/blog/690845


框架设计上的十点基本常识
http://thinkinjava.cn/2018/10/04/2018/2018-10-04-框架设计上的十点基本常识/
作者
莫那·鲁道
发布于
2018年10月4日
许可协议