软件开发中的分层

1.关于软件设计中分层的总结:
这个分层是最基本的,最没技术含量:
Action->POJO/VO->service(接口+实现类)->DAO((接口+实现类)
Action:接收用户请求、获取用户输入的信息、调用Service、控制页面跳转等
POJO/VO:POJO是包含set/get方法的值对象,一般是用MyEclipse生成,一般一个表对应一个POJO类,主要供其他业务逻辑存、取表单值。一句话:PO(POJO贫血模式)就是对数据库表及其关系的映射
Service:是写具体的业务逻辑的, 一般在这里调用dao。 看spring的书籍时一般会发现总会有service层出现获取数据库连接、处理事务、处理数据回滚、调用DAO
DAO:dao是对po的操作, 专职负责与数据库的CRUD操作
大致流程是:客户提交请求->进入对应的Action->Action调用Service->Service调用对应的DAO中的方法->返回操作状态(一般是true/false)->根据操作状态由Action决定跳转到某个页面->显示用户请求结果。
有人说这是设计中经典的3层,但我认为还是很傻的分层模式。对每个数据库表建立一个pojo,一个映射文件,一个dao(接口),一个daoImpl(实现),一个service(接口),一个service(实现),这样数据库中如果有五张表,就会相应建立30个文件,感觉很是麻烦。
但是,大部分还是如此
javaEye中有高人这么分层的:
BaseAction-->代理类-->Service-->DAO
action通过代理来调用Service(的方法),这个Service(的方法)是在配置文件里面配置的,通过反映机制获得,然后在Service里面操作业务,必要时调用DAO.
具体如下:
1.BaseAction是一个抽象类,它的字类至少有两个方法,一个方法用来处理请求数据,一个用来处理response数据,这两个方法的签名为:
a)处理请求的方法: public BaseDTO prepareMethodName(){} 方法名任意,通过配置文件配置
b)处理响应数据方法: public String processMethodName(BaseDTO);返回值为String型,因为我们用struts2;
2.BaseAction调用处理请求的方法,获取请求参数BaseDTO,通过代理传递给Service
3.Service方法签名为 public BaseDTO serviceMethodName(BaseDTO) throws ServiceException
4.Service将响应数据封装成BaseDTO通过代理返回给BaseAction
5.BaseAction调用响应请求的方法,最后跳转到其它请求
注: 这个代理可以是普通的类实现,也可以是EJB实现(这样兼容了分布式),DAO定义了自己的标准的接口,独立于任何ORM(只要这个ORM可以提供DAO的接口实现即可)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值