博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
优雅的代码:将处理用户界面和处理业务逻辑的代码分开
阅读量:4221 次
发布时间:2019-05-26

本文共 1314 字,大约阅读时间需要 4 分钟。

一个分层良好的系统,应该将处理用户界面和处理业务逻辑的代码分开。之所以这么做,原因有以下几点:

(1)你可能需要使用不同的用户界面来表现相同的业务逻辑,如果同时承担两种责任,用户界面会变得过分复杂;

(2)与GUI隔离之后,领域对象的维护和演化都会更容易,你甚至可以让不同的开发者负责不同部分的开发。

举个栗子:

比如,我们做一个用户列表信息页面,该页面需要实现对用户信息的增删改查。

在这个例子中,与用户界面相关的有用户的增删改查跳转页面相关,而与业务相关的是对增删改查数据处理对于Spring MVC 架构,我们可以在控制层写两个控制类,一个是专门处理页面跳转相关的UserPageController类,另一个是数据处理相关的UserApiController类。具体实现代码如下:

1)跳转页面控制器

/** * 跳转页面等相关处理控制器 * @author tim * @date   2017年7月9日 */@RequestMapping("/userPage/")@Controllerpublic class UserPageController {    @RequestMapping("goUserList")    public String goUserList(String id, Model model){        //其它需要跳转前的数据处理        model.addAttribute("id", id);        return "/modules/user/list";    }        @RequestMapping("goUserAdd")    public String goUserAdd(String id, Model model){        //其他需要跳转前的数据处理        model.addAttribute("id", id);        return "/modules/user/add";    }    }

2)业务数据处理控制器

/** * 业务数据处理控制器 * @author tim * @date   2017年7月9日 */@RequestMapping("/userApi/")@Controllerpublic class UserApiController {    @RequestMapping("getUserData")    @ResponseBody    public ResponseData getUserData(String id){        ResponseData responseData = new ResponseData();        //业务代码获取数据处理        return responseData;    }        @RequestMapping("addUser")    @ResponseBody    public void addUser(String id){        //业务代码数据处理    }}

转载地址:http://tmomi.baihongyu.com/

你可能感兴趣的文章
C++网络通信库性能大比拼
查看>>
关于C++程序的稳定性
查看>>
Linux的inode的理解
查看>>
linux文件管理(inode、文件描述符表、文件表)
查看>>
Linux中文件描述符的理解(文件描述符、文件表项、i-node)
查看>>
浅析SkipList跳跃表原理及代码实现
查看>>
跳表 (Skip List) C++ 实现
查看>>
【SpringBoot】spring.output.ansi.enabled引起日志出现ESC[开头颜色日志
查看>>
玩转CODESYS 入门篇(一)-- 认识CODESYS
查看>>
Codesys中国官网下载中心
查看>>
mysql 删除数据表中数据_Mysql-删除数据表-三种方式详解
查看>>
数模系列(3):模糊综合评价法
查看>>
对于qsort和sort使用效率的详细对比
查看>>
loop设备及losetup命令介绍
查看>>
littlefs系列:Technical Specification
查看>>
利用dmesg和addr2line来对(动态库里的)段错误进行调试
查看>>
Linux:objdump命令解析
查看>>
BMS 历史数据存储方案分析
查看>>
【规划】关于A*、LPA*、D* Lite算法的小结
查看>>
TOML 教程 - 可能是目前最好的配置文件格式
查看>>