单个网站使用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模式网站编写经验总结的更多相关文章

  1. 二十八、带给我们一种新的编码思路——EFW框架CS系统开发中的MVC模式探讨

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...

  2. .net网站开发(设计):1.什么是MVC模式

    好吧我知道,应该很少人一开始学网站开发就从MVC开始,但如果你已经理解了三层架构之类的,那直接尝试强大的微软MVC网站开发模式也是挺不错的. 但其实我们学校有个实验室,那些干进去的就算是大一的学生,也 ...

  3. 二十七、EFW框架BS系统开发中的MVC模式探讨

    回<[开源]EFW框架系列文章索引>        EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://p ...

  4. [转载]WIKI MVC模式

    MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最 ...

  5. 作业07之《MVC模式》

    MVC(Model View Controller)模型-视图-控制器 MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的 ...

  6. 浅析MVC模式与三层架构的区别01

    三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI ...

  7. MVC模式与三层架构的区别

    之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) ...

  8. 浅析MVC模式与三层架构的区别

    浅析MVC模式与三层架构的区别 三层架构和MVC是有明显区别的,MVC应该是表现模式(三个加起来以后才是三层架构中的UI层).三层架构(3-tier application) 通常意义上的三层架构就是 ...

  9. Java的MVC模式简介

    Java的MVC模式简介 MVC(Model View Control)模型-视图-控制器 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件 ...

随机推荐

  1. ubuntu下firefox安装Adobe Flash Player

    转自ubuntu系统自带的火狐(firefox)如何安装Adobe Flash 当你刚装完系统,发现打开某些网站时,提示你"需要安装flash",然后你点击确定,过了一会,提示你安 ...

  2. MyBatis动态SQL语法

    [注:摘自MyBatis官网 ] 1.动态SQL的元素: if choose (when, otherwise) trim (where, set) foreach bind 2.if语句:   &l ...

  3. easyui源码翻译1.32--NumberBox(数值输入框)

    前言 扩展自$.fn.validatebox.defaults.使用$.fn.numberbox.defaults重写默认值对象.下载该插件翻译源码 数值输入框是用来限制用户只能输入数值型数据的.他可 ...

  4. 冒泡排序BubbleSort

    /** * * @author Administrator * 功能:交换式排序之冒泡排序 */ package com.test1; import java.util.Calendar; publi ...

  5. 获取C#中exe程序的实例名

    获取sanjiao.frmsanjiao string strPass = @"D:\WinAutoTest\sanjiao.exe"; Assembly assebly = As ...

  6. Android 自定义title样式

    requestWindowFeature(featrueId),它的功能是启用窗体的扩展特性.参数是Window类中定义的常量.一.枚举常量1.DEFAULT_FEATURES:系统默认状态,一般不需 ...

  7. Android 图片从网页中获取并动态加载到listview中

    实现功能: 效果图: 代码:这里

  8. Android 在AlertDialog里添加布局控件

    android里很多时候需要在弹出的AlertDialog里有自己的控件,填写信息,比如弹出一个登陆对话框 那么首先你就要创建这么一个布局的inputphonenum.xml文件了 <?xml ...

  9. Microsoft Azure File 服务简介

    我们非常高兴地宣布在微软Azure中国区推出 Microsoft Azure File 服务预览版.Azure File 服务使用标准 SMB 2.1 协议提供文件共享.Azure 中运行的应用程序现 ...

  10. 用Eclipse和GDB构建ARM交叉编译和在线调试环境

    我们在 Linux 主机中搭建我们的开发环境,使用 Ubuntu 10.04 LTS 为例. 搭建应用开发环境   安装 JRE Eclipse 依赖于Java 环境,所以必须先安装 JRE 或 JD ...