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;
} }
MVC模式网站编写经验总结的更多相关文章
- 二十八、带给我们一种新的编码思路——EFW框架CS系统开发中的MVC模式探讨
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- .net网站开发(设计):1.什么是MVC模式
好吧我知道,应该很少人一开始学网站开发就从MVC开始,但如果你已经理解了三层架构之类的,那直接尝试强大的微软MVC网站开发模式也是挺不错的. 但其实我们学校有个实验室,那些干进去的就算是大一的学生,也 ...
- 二十七、EFW框架BS系统开发中的MVC模式探讨
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...
- [转载]WIKI MVC模式
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最 ...
- 作业07之《MVC模式》
MVC(Model View Controller)模型-视图-控制器 MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的 ...
- 浅析MVC模式与三层架构的区别01
三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...
- MVC模式与三层架构的区别
之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) ...
- 浅析MVC模式与三层架构的区别
浅析MVC模式与三层架构的区别 三层架构和MVC是有明显区别的,MVC应该是表现模式(三个加起来以后才是三层架构中的UI层).三层架构(3-tier application) 通常意义上的三层架构就是 ...
- Java的MVC模式简介
Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...
随机推荐
- CSS跨浏览器(转)
本文将介绍兼容IE+.FF.Chrome.Safari.Opera的技巧 一.CSS HACK 专门为某版本的浏览器设置样式,从而解决浏览器显示的差异 selector { +property:val ...
- [cc150] 硬币问题
Given an infinite number of quarters (25 cents), dimes (10 cents), nickels (5 cents) and pennies (1 ...
- android 服务service开启和关闭
startService()方法开启一个服务. 服务只会开启一次,如果服务已经创建,并且没有销毁,多次调用startService方法只会执行onStartCommand方法和onStart方法. 服 ...
- Linux中与DNS相关的内容
Linux中与DNS有关的三个东西: 1. 主机名 2. DNS服务器 3. Host文件 Linux中和DNS有关的三个文件: 1. /etc/hostname 2. /etc/resolv.con ...
- minicom installation and configuration on ubuntu
minicom是一个串口通信工具,就像Windows下的超级终端,可用来与串口设备通信.minicom完全通过键盘实现操作. install sudo apt-get install minicom ...
- CreateObject("Wscript.Shell")用法
WScript.Shell是WshShell对象的ProgID,创建WshShell对象可以运行程序.操作注册表.创建快捷方式.访问系统文件夹.管理环境变量. 该对象有一个run方法. Run 方法创 ...
- linux 失败无连接 检查电缆吗
将BOOTPROTO=dhcp改成 BOOTPROTO=static 改成手动获取IP的模式 原因: 虚拟机中的Linux目前是默认设成的自动获取IP设置,但你的网络中没有DHCP服务,所以会显示“正 ...
- 【转】为Xcode添加删除行、复制行快捷键
原文网址:http://www.jianshu.com/p/cc6e13365b7e 在使用eclipse过程中,特喜欢删除一行和复制一行的的快捷键.而恰巧Xcode不支持这两个快捷键,再一次的恰巧让 ...
- Mvc自定义分页控件
MVC开发分页常常使用第三方控件,生成的分页HTML带有版权申明,虽然免费,但是总有的别扭.于是,某日,楼主闲来蛋疼,折腾了个自定义分页控件: 先来展示下效果图: 1>当分页不超过10页的时候, ...
- 用Oracle的TRIM函数去除字符串首尾指定字符
去掉首尾空格 SELECT TRIM(' abc '), ltrim(' abc '), rtrim(' abc ') FROM dual; 去掉首尾的其他字符 SELECT /*TRIM(';a;b ...