声明式配置 vs 编程式配置

  • 声明式
    • 语义简单且明确。
    • 与具体实现解耦,利于重构。
    • 用户交互的接口粒度粗。交互接口抽象了具体功能。而这抽象限制了功能的扩展。
  • 编程式
    • 语义复杂,需要用到函数组合。
    • 与具体实现强耦合,API 的设计与整个程序架构耦合。
      • 大的重构容易造成交互接口的不兼容改动。所有设计必然存在缺陷,就需要修改,然而不能重构会导致历史包袱越来越重。
    • 用户交互的接口粒度细。
    • 扩展方便,自定义需求可由调用方自己实现。