简单Web应用框架设计

简单Web应用框架设计

对于web应用,我们可以简单将其抽象归纳为如图中所示几个部分:客户端(Client)、请求处理(Router)、业务处理(Controller)、外部调用(eAPI)、视图引擎(View)、服务引擎(Service)、数据持久(DAO)和数据库文件系统。晓宇码匠1.请求处理Router

请求处理主要是对客户端全部请求的统一入口,和硬件路由器的功用相似。请求处理主要对客户端请求进行过滤、定位控制器、权限校验等作用。

2.业务处理Controller

业务处理主要是结合具体的业务对用户的请求进行处理,其实这也是我们常说的控制器;控制层负责处理逻辑控制。

3.视图引擎View

视图引擎主要调用模板对业务数据进行渲染,输出html界面文件。

4.服务引擎Service

服务类似于业务处理,从整个应用层面来看,服务属于一类稳定的、安全的、全局的业务应用,处于业务和数据的中间。在有的应用中,直接将服务层合并到了业务处理中,但是我还是倾向于将服务剥离出来;服务层负责处理业务。

5.数据持久DAO

数据持久主要用于和数据库文件系统交互,也就是我们经常说的CURD操作。通常调用数据库或文件系统提供的CURD驱动接口(DataDriver)实现;dao层是单精度方法,负责实现功能,不处理业务。

6.数据库、文件系统

数据库、文件系统主要用于提供数据的CURD具体实现,如:MySQL、NTFS文件系统,并为三方应用提供数据驱动接口DataDriver。

我的ssm的分层方式
晓宇码匠

  • com.xiaoyu.shop.bean:实体类
  • com.xiaoyu.shop.controller:控制类(负责业务逻辑)
  • com.xiaoyu.shop.dao:接口类
  • com.xiaoyu.shop.instrument:工具类
  • com.xiaoyu.shop.service:服务类(功能的具体实现,供控制类使用)
  • com.xiaoyu.shop.test:测试类
  • com.xiaoyu.shop.util:其他类(外部调用或者拦截器)
  • resources:静态资源
  • webapp:视图层
    以上也是基于MVC架构来实现的

MVC的优点
1.低耦合性
  视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
2.高重用性和可适用性
   随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何 WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是 一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这 些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
3.较低的生命周期成本
  MVC使开发和维护用户接口的技术含量降低。
4.快速的部署
  使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
5.可维护性
  分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
6.有利于软件工程化管理
  由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。

普及

交互式系统:

  • PAC模式定义表示-抽象-控制(Presentation-Abstraction-Control,PAC)体系结构模式以合作agent的层次形式定义了交互软件 系统的一种结构。
    • 介绍
        PAC模型以树状层次结构构建交互式应用层次。PAC agent共分三层:顶层PAC agent,底层PAC agent和中层PAC agent。但要注意的是,PAC并不是每个字母对应一层。后面,出现“agent”的地方与“PAC agent”同义。
        顶层agent负责系统的核心功功能。比如说建立在一个数据仓库上的应用程序,顶层agent就相当于访问数据仓库的接口。
        中层agent则是负责沟通底层和顶层agent。注意中层agent并不一定直接就和底层agent通信。因为中层agent中也可以分层次,高级别的中层agent管理低级别的中层agent,这个就有点像树里面的非叶子节点。
        底层agent表达了独立的语义概念。比如,负责显示功能的agent,柱状图、饼图等各种视图都可以通过一个agent来控制。底层agent负责直接跟用户打交道,也就是除了显示数据还可以接收输入。
        
        个人认为说agent分为三层还不如说agent分为三类。虽然,这样表述系统层次结构不太明显,但是起码不会和层次模型混淆。
  • MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller) 
    (控制器Controller)- 负责转发请求,对请求进行处理。
    (视图View) – 界面设计人员进行图形界面设计。
    (模型Model) – 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106705.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 单片机的io口的结构_单片机io口结构对比异同点

    单片机的io口的结构_单片机io口结构对比异同点文章目录单片机的最小系统(纯电路)单片机最小系统电路图STC89c52最小系统增强型8051最小系统晶振的样子STC单片机复位IO口结构写0亮灯写1灭灯强推挽模式写1输出5V大电流开漏模式写0输出0V不能拉高高阻输入单片机的最小系统(纯电路)单片机最小系统电路图1.电源供电:5V的正极接VCC脚,5V的负极接GND2.时钟电路:提供时钟信号,内存IRC震荡或者外部晶振参与震荡3.复位电路:避免上电过程中执行程序进而产生误动作甚至损坏电路STC89c52最小系统增强型8051最小系统

    2022年10月21日
    3
  • x86和x64的区别[通俗易懂]

    x86和x64的区别[通俗易懂]整理了下网上的资料,归类了下,大似表述是这样的:IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86。x86并不是指32位环境,而是指80×86架构,这个架构目前有32位,64位

    2022年8月4日
    8
  • 麦肯锡:芯片业界整合即将完成

    麦肯锡:芯片业界整合即将完成

    2022年3月6日
    62
  • 一周自学动态站点设计

    一周自学动态站点设计

    2021年12月16日
    40
  • nginx自动重启脚本_nginx进程数和连接数

    nginx自动重启脚本_nginx进程数和连接数工作中经常要杀掉nginx对应的进程,然后手动命令重启和删除nginx日志,每次都要输入3个或3个以上的命令,效率低。写个脚本万事大吉。#!/bin/shNAME=”nginx-p/home/proj/gamebin/-cconf/depnginx.conf”ID=`ps-ef|grep”$NAME”|grep-v”$0″|grep-v”…

    2022年8月13日
    6
  • cnpm 安装命令

    cnpm 安装命令  npm包管理器是每一位js开发者的得力助手,利用npm我们不仅能下载到别人写好的组件,也可以快速搭建我们的项目……但对于国内的开发者,npm的下载速度有是实在是令人捉鸡,因此国内的许多开发者都会使用更加快速的cnpm简单代替npm。打开控制台,输入命令npminstall-gcnpm–registry=https://registry.npm.taobao.org耐心等待一下安装即可此后我们再使用npm下载包的时候,就可以将npm命令替换为cnpm,下载下来的内容完全一样,但是速度

    2022年10月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号