知识卡片
把UI组件类型彻底隔离在表示层,领域逻辑只认"属性"不认具体控件
内容
Creation Center把常见的”表示层依赖领域模型”的关系反过来做:领域层的”表格”对象完全不知道Swing组件的存在,只暴露一组有类型的”属性”(字符串、日期、布尔值),每个属性可以绑定到任意视觉控件——一个布尔属性既可以接复选框也可以接单选按钮,UI逻辑(选中这个复选框就让另外4个字段生效)本质上是业务逻辑,被放进了看不见Swing一行代码的表格对象里。这样设计的直接好处是单元测试可以完全绕开真实GUI、只驱动属性变化来断言结果,而更深的价值在于:把”这个交互控件长什么样”和”这个交互背后是什么业务规则”这两件事彻底分开,换一套UI框架时业务逻辑完全不用动。
参考来源
《架构之美》第4章《记忆留存》