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是一种软件工程中的一种软件架构模式,把软件 ...
随机推荐
- [topcoder]IncrementAndDoubling
http://community.topcoder.com/stat?c=problem_statement&pm=12790&rd=15708 这道题只有两个操作,一是加一,二是数组 ...
- [wikioi]线段覆盖
http://wikioi.com/problem/1214/ 这道题也归为贪心了.我也不是很能分辨,但想法确实是:1.有阶段最优化性:2.前一状态和后一状态有关系. 想法:1.排个序是很自然的想法, ...
- ActionBar官方教程(3)更改标题处的图片
Using a logo instead of an icon By default, the system uses your application icon in the action bar, ...
- C#日期格式精确到毫秒以及上下午
有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2009-6-24 14:33:34 如果要换成成200906,06-2009,2009-6-24或更多的该怎么办呢 我们要用到:DateT ...
- c程序设计语言_习题8-6_利用malloc()函数,重新实现c语言的库函数calloc()
The standard library function calloc(n,size) returns a pointer to n objects of size size , with the ...
- Charles使用问题, iOS7的http代理(http proxy)配置不生效问题
Charles配合iOS7使用时, 发现iOS7的http代理(http proxy)配置不生效, 代理信息写完后, 系统没有自动保存. 解决方法: 将些wifi忽略, 重新连接, 再配置代理就好了.
- .net,sessionState的Session共享问题解决方案
最近项目因为要负载均衡所以就使用了sessionState的Session共享,但是却发现多台服务器中有个别服务器的Session没有共享,于是就有了这篇文章,下面开始说说. 这个基本上就分两种情况: ...
- WCF 第五章 会话级别的实例
会话在分布式应用程序中广泛用于维护每个用户的状态.在站点或者基于站点的应用中,将每个用户的状态存储于会话中很常见.这这些情况中,用户和会话间有一个1:1比例.WCF以一个类似的概念支持服务.使用Ins ...
- SQL Server触发器以及如何在SQL Server Manager中调试触发器
·只有inserted表有数据时,当前操作为insert:·inserted和deleted两张表都有数据时,当前操作为update:·只有deleted表有数据时,当前操作为delete. 1. C ...
- vs212创建mvc3项目,添加ADO.NET实体数据模型时产生 XXXX.Desiger.cs 文件为空
vs212创建mvc3项目,发现添加ADO.NET实体数据模型时,产生StoreDB.Desiger.cs文件为空 产生StoreDB.Desiger.cs文件为空 原因是,在vs2012中,添加AD ...