机房重构小结(三层)

用了两个月纯三层的《机房重构》算是完成了,期间SQL软件各种不配合导致的各种修复从而获得了一大把“美好”经验,最后在卸装几次后还是无可避免的重装了系统,这两个月中用在SQL上的时间一个星期有过之而无不及。回头看看GrindStone中单对机房重构的记录才50来个小时,瞬间有种被SQL伤到的感觉,别人都在做系统我在……被玩电脑。所以现在抱着一种壮士将死的大义凛然先让机房收费早点升天吧。

对于机房收费系统的重构,主要分四为个方面:业务逻辑、数据库、分层、控件。

业务逻辑

这里的业务逻辑是指《机房收费系统》的功能设计,也是我们常说的几条线的问题,即有几条线就是几个业务逻辑。在开始做之前最好先分析它有哪些线,大致规划一下各条线实现的先后顺序,由易到难。这个过程是UML中需要体现的,对于敲系统也是宏观把控的关键。机房中还算复杂一点的是上下机、组合查询、结账,我在将要做之前又画了一下比较详细的流程,这样做起来很速度。只要思路清晰合理,这部分还是比较简单的。

数据库

第一次做机房是模仿资料里的数据库建的,用起来有点麻烦。在《数据库系统原理》中了解到一些设计数据库的原则,这次正好派上用场,刚开始就是按照那几个范式来的,在敲系统的过程中发现不对劲,太精简反而不利于系统的使用,满足三范式就差不多了。数据库设计涉及到了数据库表、数据库关系图、视图、存储过程,这些有的在以前的博客中总结过。(本来想贴图的,SQL又打不开了,等它好了再说吧)

分层

分层和设计模式应该放在一起的,这也是机房重构的重中之重,但是由于我还没有加设计模式,现在先简单小结下U、B、D三层。

U层是窗体界面层,按窗体划分,这个里边比较麻烦的是一些控件的应用,所以把它单独分成一个方面。

B层算是U、D两层的中介,按照功能划分,起到传递信息的作用,是最简单的一层。

D层是和数据库打交道的,按数据库表划分,根据B层传进来的信息操纵数据库,是系统的灵魂所在。外加的SqlHelper在D层起到了举足轻重的作用,使D层更利于管理。

三层之外的E层相当于全局变量,按照数据库表和视图划分,即数据库中有什么表就有什么实体,不管是真实的表还是虚拟的表。E层和D层的转换通过封装在E层的一个ConvertHelper类实现。

控件

从VB到VB.net的转变,在编程风格上没有太多变化,倒是那些主要的控件有得研究了,从菜单控件、表格控件到标签控件,在没有使用前真是一头雾水,用过之后才发现VB.net的确实灵活。机房中需要了解的控件:表格控件DataGridView、菜单控件MenuStrip、标签控件TabControl、报表控件ReportViewer、时间控件DateTimePicker、浏览器控件WebBrowser。其中DataGridView、ReportViewer用的比较多,在后续博客中介绍,其它的很简单知道是用它就行。附加几个在刚开始使用失误的一些常用控件属性:

form窗体:AcceptButton默认按钮,CancelButton取消按钮。VB中的默认、取消按钮是放在控件上的,在VB.net中都移到了窗体上

text控件:Locked锁定位置,Readonly只读,Multiline允许调整控件大小,vbCrLf=Chr(13)&Chr(10)是回车换行符。

combobox控件:DropDownStyle下拉框显示型式,dropDownList只能选择下拉框中的内容

时间: 2024-10-05 23:58:32

机房重构小结(三层)的相关文章

机房重构前奏——三层转七层

刚敲完三层的小例子之后,感觉还是很简单的,只是通过分层让不同的层次完成不同的工作,减少耦合性.可是接下来师父就直接给了一个大难题,让我将三层转变为七层,这对我来说相当困难,自己当时根本就不知道有哪几层,就开始搜.经过一段时间的思考后,终于能够初步明白登录的七层是那些了.下面是我画的包图: 三层的时候只有UI.BLL.DAL,七层只是在原来基础上添加了外观设计模式.接口和抽象工厂,通过分层来减小耦合度.接下来如何来实现各层之间的链接呢? U层:表示层,主要负责与界面设置. Imports Faca

机房重构---小结

回顾这个项目,我将其分为四个阶段:(一).熟悉需求.画图.设计数据库,将三层登录改为七层:(二).增删改查各敲一条线:(三).剩余功能的设计:(四)完善系统.现在再看这段历程,很奇怪我在第一和第四环节上花费的时间占了绝大部分,也更深刻地感受到了设计软件不仅仅是敲好代码这么简单. 经历了两次验收,第一次师傅狠批了一次,回头又修改了一个星期,第二次验收通过,下面从这几个角度来对这次机房重构做下总结: 一.细节 所谓"细节",从需求分析开始,好多方面如果没有别人指出来,自己很难发现问题所在,

机房重构包图(从三层+实体到三层+实体+外观+工厂+接口+SQLHelper)

刚刚开始接触三层的时候,我只做了两个登录小窗体的例子.画了简单的包图,可以说,为后面机房重构留下了大量的工作(因为三层理解没有深度,也没有理解出自己的东西).不过,欠下的总要还的.在做机房重构的时候,问题出现了.如果只用三层+实体,我能做出来,但是,要求重构不能只用三层+实体,那么,就要好好分析一下了. 首先说说三层+实体:就是表现层(U层)直接调用业务逻辑层(B层)的逻辑,业务逻辑层在直接访问数据层(D层),在把数据返回到B层后返回到U层.首先,只用三层+实体做程序时,灵活性不够高.如果想换数

机房重构(一)--UML图

终于开始重构了,机房重构可以说是我们现阶段一个很重要的小项目,因为它涉及到我们这段时间学习的各种知识:首先我们用到了软工的知识,做一下开发前写文档的工作:其次就是UML图,再有我们这次重构的主要开发环境是VS,涉及到了我们看的视频C#和.net的知识:最后就是设计模式和三层知识的综合利用.所以,重构是我们对现阶段学习的一个试炼石,是我们编织知识网的一个重要结点. 文档主要还是对之前的进行细化和补充,尤其是涉及到一些流程图.顺序图的描述.用了几天的时间终于把重构的几种图画好了,根据这次的需求我主要

[机房重构]UML图(包图、类图、用例图、时序图)

机房重构画图是一个非常重要的一个阶段,机房重构之前也画过UML的图,但是这一次与上一次不同,这一次有分层的思想在里面. 包图 之前三层的时候各层之间的传递很清晰,包图也很容易就画出来了,先来看之前三层的包图.通过实体将输入的信息从U层传入B层,同时通过实体将信息从D层传入B层,B层进行判断,通过实体将结果返回给U层. 之前的三层不能很好的实现低耦和的思想,并且我们学习了设计模式,要继续进行分层,进行七层的编写.之前不太理解,看大家的博客,知道在U层和B层之间加入了外观模式,降低U层和B层之间的耦

机房重构-完结篇

机房重构已经结束了,自从软考开始,光顾着准备软考和三级网络等级考试就没来得急总结.软考一开始,突然觉得时间好少,时间过得好快.这节奏,有点飕飕的. ---------------------技术总结: 熟悉了对Visual Studio这一开发环境的使用,深入了解了VB.net语言基础有了一定的认识并且学会使用.这一次使用三层架构,利用分分层的思想,深入理解了各层的职责.代码规范,这一次再敲代码的时候先学了一下代码规范,也把头文件注释设计好,让自己的代码漂亮一点. 最终的要思想还是面向对象,根据

机房重构 之 SqlHelper

机房收费开始一段时间了,刚开始也是敲了一段时间,发现D层访问数据库出现了大量的重复代码,每个D层类都要 单独访问数据库.发现问题,咱们就解决问题,查阅前人的博客,发现了一个SqlHelper类,运用一下,果然好用,省 去了大量时间去写重复的代码. 小面对SQL中的一些类方法进行简单的介绍. 1.SQLHelper.ExecuteNonQuery    作用:用于执行语句 2. SQLHelper.ExecuteScalar       作用:用于获取单字段值语句 3. SQLHelper.Exe

个人机房重构总结

个人版的机房重构花费了一个月的时间,也算是完成了.现在整理一下三层机房收费系统里面的小问题.对于使用三层架构的机房收费系统来说,数据库的设计是一个重点.但是三层架构的小实例也是经典. 为什么很多人在开始项目之后,都无从下手? 因为三层的那个实例没有看懂(并不是没有实现).三层架构的登陆实例,实现不是目的,我们就是要从这个实例中学习,三层的是如何划分,并且是如何调用的. 机房重构的准备工作:     在学习完三层架构理论之后,紧接着的项目就是个人版机房收费系统. 对于三层结构的登陆实例,如果可以理

机房重构 抽象工厂+反射+配置文件

重构机房已经开始三个多星期了,从刚开始的一头雾水,到现在的柳暗花明,由开始的无从下手,到现在感觉犹 如脱胎换骨了般.和两个星期前相比,现在明朗了多了,心情也好了不少. 先给大家看一下这次重构的整体架构图: 在前面一篇博文中对三层(UI.BLL.DAL.Entity)http://blog.csdn.net/zhangzijiejiayou/article/details/38226135做了详细的介绍. 本篇博客着重总结一下在三层的基础上我所做的改进,也就是传说中的七层. 1.Facade层(外