项目中的收获

完成了一个简单(对我来说也不简单。因为我还没有写过三层架构的项目)的小项目(管理系统)为此特地去了解了一下三层架构。

在知道要写这个项目的时候是激动的,但也是有点忐忑的。激动的是可以通过这个项目可以巩固自己的专业知识,还可以扩展自己对三层架构的了解。

忐忑的是这个项目要求是独立完成的,因为没有接触过三层架构,在这其中可能会遇到很多问题,虽然可以请教组员和组长,但是我发自内心的还是希望自己能独立完成。

先来说说什么是三层架构吧(因为上面说了很多三层架构)

三层架构:顾名思义,就是把整个业务应用划分为:界面层、业务逻辑层、数据访问层。

1:数据访问层:主要是对非原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据库的操作,而不是数据,具体为业务逻辑层或表示层提供数据服务.

2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。

3:界面层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。

分层的目的:就是为了"高内聚低耦合"的思想。

在软件体系架构设计中,分层式结构是最常见的,也是最重要的一种结构

在第一阶段的时候,通过分层把各个业务之间的联系和跳转实现。

在这个时候我遇到了一个问题,怎么在同包不同类的情况下调用其它类的方法

后来通过实验以及百度,我知道了两种方法。

1、如果是静态方法,我们可以直接用类名。(点)方法名的形式来实现调用同包不同类的方法。

2、通过实例化被调用类的对象,通过对象来调用方法。

在第二阶的时候就是完善各个业务的实现。

第二阶段对细节的掌握和处理很重要。比如在有要求用户输入数据的时候,我们应该对用户输入的数据进行非空判断。然后再把用户输入的数据进行有效的性判断。

1、这里的非空判断是要先判断对象是否为null.然后再用equals方法,否则会报空指针异常。

2、限制用户输入的数据类型(就是对用户输入的数据设定某一个范围内)

  限制用户输入是为了使我们所取得的数据是有意义的,取得我们想要的数据。

3、把取得的数据先去掉空格再进行有效性判断。因为空格也算是一个字符。

第三阶段的时候就是完善各个业务的细节

  第三阶段的是要把在这个业务的时候可能出现的各种问题都考虑到。

  这样才能尽量避免出现过多的异常和BUG。

通过这次的项目,从中熟悉了三层架构的原理以及使用分层的好处。也巩固了java的基础知识。

时间: 2024-11-28 19:26:40

项目中的收获的相关文章

布尔变量在项目中的应用

在本次项目中,收获最大的一点应该就是学会了在项目中应用布尔变量了,以下谈谈我对布尔变量使用的一些看法. 在本次项目中,有一个困扰了我许久的难题,那就是代码的逻辑问题,一开始由于各种逻辑混乱,导致插件效果不尽如人意,插件的控制效果很不理想,最后通过几个布尔变量,轻而易举的弄通了代码逻辑,也使插件很合乎我意的跑了起来,甚至还可以加以扩展. 下面举个小栗子来说明布尔变量的简单使用吧: help = False def getHelp(): help = True global help if help

切身体会,从项目中小结出 前端程序员容易忽视的一些基础知识

基础数据结构与算法 现在有两个不同的JSON,比较复杂,可以参考这里的DEMO中返回的JSON.要比较它们的差异,除了用现成的工具如beyond compare以外,如果我们的机器上没有安装这个工具,能如何较快解决?作为一个程序员,一个个对比是不可行的,对比完也不会有什么收获.我会把之放进Excel中(如果你机器连这个都没有,那忽视我),先排序,再用二分法去快速定位找到有差异的JSON属性,即使是1024个字段的大数据,也最多10次的定位即可找到.其实算法这东西,并不是给你一道题目然后把死记下来

谈谈23种设计模式在Android源码及项目中的应用

本文首发于个人博客:Lam's Blog - 谈谈23种设计模式在Android源码及项目中的应用,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博客,如果个人博客无法访问可以留言告诉我,转载请声明个人博客出处,谢谢. 前言 本文将结合实际谈谈23种设计模式,每种设计模式涉及 * 定义:抽象化的定义与通俗的描述,尽量说明清楚其含义与应用场景 * 示例:如果项目中有使用过该模式,则会给出项目中的代码,否则会给出尽可能简单好理解的java

Spring Boot项目中使用Mockito

本文首发于个人网站:Spring Boot项目中使用Mockito Spring Boot可以和大部分流行的测试框架协同工作:通过Spring JUnit创建单元测试:生成测试数据初始化数据库用于测试:Spring Boot可以跟BDD(Behavier Driven Development)工具.Cucumber和Spock协同工作,对应用程序进行测试. 进行软件开发的时候,我们会写很多代码,不过,再过六个月(甚至一年以上)你知道自己的代码怎么运作么?通过测试(单元测试.集成测试.接口测试)可

Spring Boot项目中如何定制PropertyEditors

本文首发于个人网站:Spring Boot项目中如何定制PropertyEditors 在Spring Boot: 定制HTTP消息转换器一文中我们学习了如何配置消息转换器用于HTTP请求和响应数据,实际上,在一次请求的完成过程中还发生了其他的转换,我们这次关注将参数转换成多种类型的对象,如:字符串转换成Date对象或字符串转换成Integer对象. 在编写控制器中的action方法时,Spring允许我们使用具体的数据类型定义函数签名,这是通过PropertyEditor实现的.Propert

Spring Boot项目中如何定制拦截器

本文首发于个人网站:Spring Boot项目中如何定制拦截器 Servlet 过滤器属于Servlet API,和Spring关系不大.除了使用过滤器包装web请求,Spring MVC还提供HandlerInterceptor(拦截器)工具.根据文档,HandlerInterceptor的功能跟过滤器类似,但拦截器提供更精细的控制能力:在request被响应之前.request被响应之后.视图渲染之前以及request全部结束之后.我们不能通过拦截器修改request内容,但是可以通过抛出异

在Spring Boot项目中使用Spock测试框架

摘自:https://www.cnblogs.com/javaadu/p/11748473.html 本文首发于个人网站:在Spring Boot项目中使用Spock测试框架 Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring Boot项目中使用该框架写优雅.高效以及DSL化的测试用例.Spock通过@RunWith注解与JUnit框架协同使用,另外,Spock也可以和Mockito(Spring Boot应用的测试——Mockito

iOS项目中Json转Model的坑

Json转Model json转model,是个开发都会遇到过.都已经9102年了,谁还不会用个第三方框架搞.拿起键盘就是干!打开podfile,把大名顶顶的YYModel写上,pod install一下.再用上ESJsonFormat,直接根据json,都能把model生成好. 特殊处理 啥?返回的字段值不是我们所需的在日常开发中,经常会遇到一些接口字段返回的值,并不是我所需要的类型的情况,这个时候,我们都会对这个字段进行处理.举个栗子: 123456 /** 错误代码 */@property

用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中

我最近在用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中,第一次写项目,写过这类项目的多多提意见,哪方面的意见都行,有代码或者demo的求赏给我,谢谢