zoukankan      html  css  js  c++  java
  • java开发是否一定要使用三层结构

    从开始学习java的时候,爷爷的爷爷就教导我们,要使用三层结构去开发结构明细,低耦合,高可用的项目。但是具体开发中,每新建一张表,就要新建BO,dao层,服务层,而新建这5,6个类也许仅仅只为了实现一个基本的CRUD而已。

    经过漫长的折磨之后,不禁在想,在当前以pyhton为代表的轻语言越来越热的时候,我们是不是更应该关注更轻量的代码设计呢?

    java区别于这些轻量级语言之处,应该是j2ee的大型项目的管控能力,这种分层的严密组织结构在项目规模缩小的同时,也应该进行大瘦身。

    例如持久层,对于大部分的表维护,其实就是简单的查询,修改,保存,对于这些基本都一样的代码,没有必要单独去写一个DAO层的接口类和实现类。

    是否可以直接通过代码生成器,生成表对应的PO,让这些PO对象继承一个父类,在父类中加入CRUD的方法,这样不就节省了大部分的工作吗?

    例如:

    public class BaseModel {
    
        private HibernateTemplate hibernateTemplete;
    
        public void setHibernateTemplete(HibernateTemplate hibernateTemplete) {
            this.hibernateTemplete = hibernateTemplete;
        }
        
        public void save(){
            hibernateTemplete.saveOrUpdate(this);
        }
        
        public void delete(){
            hibernateTemplete.delete(this);
        }
        
        public List findByExample(){
            List users = hibernateTemplete.findByExample(this);
            if (null != users)
                return users;
            return new ArrayList();
        }
        
    }

    服务层的话,也可以考虑直接用静态类的静态方法,省去实现类和接口类。不过这种方式要保留使用,对于小规模的没有关系,如果项目规模稍大,还是严格使用接口类来管理。

    这种代码方式只是一个想法,并没有看见成熟的案例,是否存在风险,和不可控的性能问题,还需要探讨!

    请大神指点!

  • 相关阅读:
    ES6新特性
    CSS + HTML 鼠标在图片上悬停时的显示文字,移走时文字消失
    APICloud closeToWin和closeWin的使用
    基于vue-cli配置移动端自适应
    Cookies,localStorage,sessionStorage,Web SQL Database(客户端)会话存储学习
    select标签默认选择选项
    MySQL数据库的配置
    jsp定义 ,JSON对象
    eclipse配置
    VS2017 C++编译时出现 "the windows sdk version for 8.1 was not found"解决办法(亲测有效)
  • 原文地址:https://www.cnblogs.com/yangchengInfo/p/3309384.html
Copyright © 2011-2022 走看看