重构第十二章
3.Spearate Domain from Presentation(将领域和表述/显示分离)
某些GUI classes之中包含了domain logic(领域逻辑)。将domain logic(领域逻辑)分离出来,为它们建立独立的domain classes。
Example:
建立Order class表示订单,然后将Order和OrderWindow联系起来,同时使用一个OrderLines class 表示表单的一行数据。
OrderWindow
我们将只用于UI的数据,留下来;如果数据被domain logic使用,而且不显示在窗口上,我们使用Move Field将它搬移到domain class中;如果数据同时被UI和domain logic使用,就对它使用Duplicate Observed Data,使它同时出现在两处,而且保持两者之间的同步。
分离之后 数据放到domain class中
Conclusion:
MVC(Model-View-Control)模式
该章节最主要的应用是在与MVC模式。MVC模式核心价值在于:它将用户界面代码和领域逻辑分离开来。presentation class只含用于处理用户界面的逻辑;domain class不含任何与程序外观相关的代码,只含业务逻辑代码。
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论