MVC模式网站编写经验总结

单个网站使用MVC架构模式经验总结,包含具体网站包分类、包内类的编写、注意事项等方面。本人认为,按照如下包分类及编写方法,已经满足一个简单普通网站(主要针对java)的编写需求。

MVC主要层级

  • 数据库持久层(model)

常见应用的有Hibernate、Mybatis等持久层框架。

1. dao(repository)

此包中包含的类,是针对不同数据库的基本操作。
针对关系型数据库,是常见的CRUD(可能包含分页、模糊查询和排序等)操作,目前在JAVA EE中形成了JPA规范。
针对非关系型数据库,key-value。

一般对不同数据库类型,在dao包下建子包,例如:dao.jpa。

2. domain

针对关系型数据库,一般使用ORM映射技术,将数据库表格映射成Java类对象。

  • 业务逻辑层(service)

调用dao中的方法,实现具体的业务逻辑。
1. domain.page
将数据库查询后得到的结果组合,生成页面需要的类型。对应的类放在domain.page包下。

  • 控制层(controller)

这一层主要进行页面的互操作。接受页面传递数据,进行检验和处理,然后将参数传递给service。获取返回的结果,将对应的结果传递给页面。
1. controller
controller.screen,实现常用页面跳转,内部不包含具体业务逻辑,功能为根据url,跳转到页面。
controller,可以实现接口(Restapi),还可以实现对业务逻辑的调用。


其他

  • 其他包:

1. config
用于一些配置类。
2. common
通用对象,记录全局变量、枚举类等。
3. utils
工具包,放置参数检查等工具方法。

  • 接口方法实现策略:
//接口返回,必须注意,一般分为参数错误、异常返回、方法错误返回(null)、正确返回,四种方式。
//选择处理的方式(使用枚举,增加可读性):
// 1. 使用错误码的方式,将错误信息与错误码关联(类HTTP)。
// 优点:将不同的异常方式归类,简单。
// 缺点:种类过多,错误码过多,不易识别。
// 2. 直接将错误信息,使用包装器的方式,返回上一层。
// 优点:简单直接。
// 缺点:不易于识别转换,如果错误信息是英文,不易转换成中文显示。
// 采用:错误码(主,向上传递)+错误信息(辅,日志显示)+包装器
public Object myApi(...){
//参数检验必不可少,注意尽量写成if分块的方式,防止出现多层
//if-else 嵌套,易于扩展。
if(check(param1)){
return error1;
}
if(check(param2)){
return error2;
}
...

...
try{
...
}catch(Exception e){

return errorException;
}


}
原文地址:https://www.cnblogs.com/zhengruin/p/6129727.html