报表应用对象创建流程管控类选型:表现层还是业务层?
对象创建流程的管控类选择建议
应该把对象创建流程的管控逻辑交给业务层的专属类,而不是让表现层的窗体控制器全权处理,原因和具体实现思路如下:
- 关注点分离原则:WinForms窗体属于表现层,核心职责应该是处理用户交互(比如按钮点击、列表展示),不该掺和数据检索、模型构建这类业务逻辑。把这些逻辑抽离到业务层,能让各层职责清晰,后续维护、修改起来更省心。
- 复用与测试友好:业务层的管控类可以被不同的UI组件复用(比如以后加个控制台入口或者Web界面),而且测试业务逻辑时,不用依赖UI控件,直接写单元测试就行。
结合你现有的组件,具体可以这么做:
- 在业务层创建一个类(比如叫
SampleManager或者ModelLoaderService),这个类作为流程管控的核心:- 接收表现层传来的“加载特定样本”的请求
- 调用
TableDataGateway加载对应的数据 - 把拿到的
DataTable传给ModelBuilder生成业务模型 - 将生成的模型注册到
IdentityMap中 - 最后把整理好的模型列表返回给表现层
- WinForms窗体只需要做两件事:
- 响应用户的加载操作,调用业务层这个管控类的方法
- 拿到模型列表后,把数据绑定到UI控件上展示
这样拆分后,各层职责明确,业务逻辑不会和UI代码耦合在一起,后续扩展或者修改规则也更灵活。
内容的提问来源于stack exchange,提问作者Ondřej Janča
相关产品推荐
相关产品推荐

