文档章节

3.2 软件架构设计

scaujohn
 scaujohn
发布于 2015/04/01 17:49
字数 669
阅读 102
收藏 0
点赞 0
评论 0

A.软件分层。(暂未画包图)


B.命名规范。
(1)DAO层的设计:
        创建基本的CRUD实体操作泛型接口和泛型接口实现类,实现基本的数据操作;创建复杂的泛型接口和泛型实现类,实现一些较复杂的操作,如分页显示,复杂的查询功能。对于个别需要较复杂的单独操作的VO,单独为其创建接口和实现类,接口继承第二步中的泛型接口,实现类继承第二部中的泛型接口实现类。
(2)Service层的设计:
        Service的设计和DAO层类似,也是创建基本的基于基本DAO类的CRUD实体操作泛型接口和泛型类。一些较复杂的操作可另外定义单独的接口和实现类继承基本的泛型接口和实现类,
(3)命名规范:
        使用驼峰法,英文命名,做到尽量简洁明了,一目了然。
        VO层的命名,实体类的命名,如产品和产品类别,分别为Product.java和ProductCategory.java,且注明数据库中表的命名,一个单词(如Product)的直接为product;两个或两个单词以上的(ProductCategory)的,中间使用下划线(_)间隔,即product_category。
        DAO层的命名,接口为XxxDao.java,实现类为XxxDaoImpl.java。例如Product.java,接口命名为ProductDao.java,实现类命名为ProductDaoImpl.java。
        Service层的命名,接口为XxxService.java,实现类为XxxServiceImpl.java。例如接口为ProductService.java的实现类为ProductServiceImpl.java。
        Action层的命名,action类命名为XxxAction.java,其中@action的名字则为xxxAction(小写字母开头,驼峰法)
        View层的命名,分模块划分为不同的包,小写字母开头,驼峰法,相同类型的界面开头字母相同,如用户的登录界面和注册界面,分别命名为userLogin.jsp和userRegister.jsp。


C.  架构相关设计模式。

        使用Struts,Spring和hibernate实现MVC模式和DAO设计模式,从下到上分别为

        数据库:存储数据。
        VO层:每一个实体类映射一张数据库表,对实体类的操作相当于对数据库中表的操作。
        DAO层:实现对VO层实体类的基本操作,提供接口和实现类。
        Service层:在DAO层之上,实现逻辑处理,并提供接口和实现类共Action层使用。
        Action层:实现跳转和数据传输。
        View层:页面展示。
        其中从VO到View,使用全注解,并利用Spring自动装载,实现解耦和资源管理。

© 著作权归作者所有

共有 人打赏支持
scaujohn
粉丝 10
博文 11
码字总数 2821
作品 0
广州
红帽的 OpenStack 产品正式商用

Red Hat 云架构和红帽企业 Linux OpenStack 平台产品,是围绕着 OpenStack Grizzly 构建的,目前已经 可用 了。这二者都是在一个月之前发布的,合并了不同的红帽产品,主要设计用来帮助企业快...

oschina ⋅ 2013/07/12 ⋅ 7

软件测试工程师是低人一等还是一金难求--请看微软观点

   最近看到一些文章报道,软件测试工程师那很高的薪水,很高的待遇,可是很多人还是越不过去那种心理障碍。大家都认为软件测试工程师是为那些程序员打杂,甚至被人驱使,去收拾残局........

软件测试网 ⋅ 03/21 ⋅ 0

涩女郎/ctp_redis

ctp_Redis 注意: 以后本系统将第一时间在github上更新,请大家关注此处。 依赖 ctp_redis依赖hiredis、xredis在使用xredis前需要安装hiredis库; 安装部署: redis 3.2版本; redis 3.2目录dep...

涩女郎 ⋅ 2016/10/13 ⋅ 0

航空航天行业工作站应用---EDA仿真计算工作站

航空航天系统是一个典型的集“高大上”精尖技术于一体的庞大、复杂的行业,相关未来的产品,涉及到总体设计、气动、结构、强度、振动、液压、燃油、环控、救生、电子、电气、仪表、雷达、材料...

wdf8088 ⋅ 04/23 ⋅ 0

【读书笔记】第三章 大型网站核心架构要素

第三章 大型网站核心架构要素 软件架构:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计 软件架构需要关注的几个方面: 1. 系统功能需求(最基本的) 2. 性能 3. 可...

一条大河波浪宽 ⋅ 2015/07/12 ⋅ 0

系统架构设计师考试大纲(2009)

系统架构设计师考试大纲 一、考试说明: 1.考试目标 考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

软件设计是怎样炼成的(3)——软件系统不是木桶型的

摘要: 前文提到我们应该需求驱动设计,那就直接来一个更干脆的做法,我们将需求表示为一个一个的用户故事,软件设计分别针对用户故事来做就行了,只要将用户故事逐个实现了,系统也就完成了...

fireball1975 ⋅ 2014/01/25 ⋅ 0

从几幅架构图中偷得半点海量数据处理经验

最近对海量数据处理发生了不小的兴趣,特此从一些精彩文章中摘取几幅精彩的图片或片段,拿来给大家分享。所谓奇文共欣赏,好Architecture共品之。至于各位能从图中是窥得半点经验,还是一图以...

开心303 ⋅ 2011/08/16 ⋅ 2

MIS开发迭代1

1.1项目设想 A. 系统展望。 1、产品应用场景 (1)顾客携带所购书本到收银处通过POS机付款,收银员将顾客选购的商品逐一录入系统,系统显示最终总额,收银员告知顾客总金额,顾客选择支付方式...

fatwowzb ⋅ 2015/04/03 ⋅ 1

软件架构理解和延伸

软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件体系结构是构建计算机软件实践的基础。 简介 定义 软件架...

English0523 ⋅ 2017/09/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 40分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 42分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 52分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 55分钟前 ⋅ 0

我的第一篇个人博客

虽然这是个技术博客,但是,我总是想写一些自己的东西,所有就大胆的在这里写下了第一篇非技术博客。技术博客也很久没有更新,个人原因。 以后自己打算在这里写一些非技术博客,可能个人观点...

Mrs_CoCo ⋅ 55分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 56分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 59分钟前 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部