java三层架构

三层架构

习惯看视频学习的小伙伴们一定总是在视频中看到老师的包命名方式,常见的有Dao、Service、Servlet、Controller。这些其实就是表示架构的文件夹

架构存在的意义

高耦合的设计在日益复杂的程序中早就是被诟病的食物了,现在的程序走的设计应该为“高内聚低耦合”的方式,如果你不懂“高内聚低耦合”建议先补前面的知识。架构的出现就是增加代码的可扩展性,以此达到各层更低的耦合度。

什么是三层架构

三层架构是由业务层、数据访问层(更多的人叫它持久层)、表现层组成。
举个例子来说,你每天打开b站,在url上输入网址,跳转到b站的界面,这一个很常见的步骤就已经设计到了这三层架构。在你输入网址并按确定的时候,浏览器会将请求参数发给表现层,表现层调用后台的业务层,业务层向数据访问层(持久层)拿数据。持久层拿到数据后返回给业务层,业务层再响应给表现层,至此一个三层架构就交互完成了。

表现层(User Interface, ui)就知道是用户首先接触到层。主要负责与用户交互,整张页面的外观都算是表现层。
业务层(Business Logic Layer,bll)后台的业务逻辑方法,比如你在表现层按下一个Button,这个Button有什么功能,基本属于业务逻辑层。
数据访问层(Data Acess Layer,dal)数据库的层,就比如刚刚你按的那个Button如果是输入完密码的登入的话,业务层就会调持久层去对比密码是否和数据库中的相同。(当然这里指的漏洞百出的登录,不涉及到安全框架,请大家别杠)

在这里插入图片描述
public JSONArray getChartData(String ids) {

    JSONArray arrayResult = new JSONArray();
    List<String> idList = JSONArray.parseArray(ids, String.class);

    List<Map<String, String>> lopList = csvDao.getChartData(idList, "L");
    List<Map<String, String>> vList = csvDao.getChartData(idList, "V");

    Map<String, List<Map<String, String>>> newLop = lopList.stream().collect(Collectors.groupingBy(m -> m.get("chart_title")));
    Map<String, List<Map<String, String>>> newV = vList.stream().collect(Collectors.groupingBy(m -> m.get("chart_title")));
    newLop.putAll(newV);
    newLop.forEach((key, value) -> {
        JSONObject result = new JSONObject();
        JSONArray array = new JSONArray();
        value.forEach(m -> {
            JSONArray objects = new JSONArray();

            objects.add(new BigDecimal(m.get("volts")));
            objects.add(new BigDecimal(m.get("i")));
            array.add(objects);
        });
        result.put("legend", key);
        result.put("chart", array);

        arrayResult.add(result);
    });

    return arrayResult;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值