--------【机房系统重构】
文章平均质量分 89
z-xiaoyao
这个作者很懒,什么都没留下…
展开
-
三层简介
宏观定义: 表示将功能进行有序的分组:应用程序专用功能位于上层,跨越应用程序领域的功能位于中层,配置环境专用功能位于低层。 具体定义: 表现层:展现给用户的界面,即用户在使用系统时的所见所得。 业务逻辑层:对数据层的操作和对业务的处理,接收用户的指令或数据输入,提交给数据访问层,同时将业务逻辑层的结果返回给用户。原创 2015-12-24 16:26:21 · 1142 阅读 · 258 评论 -
机房重构——报表
在VS中报表的实现还是比较容易的,第一次机房收费时,我们用了三方工具来制作报表,相对俩说是比较麻烦的,我们来看一下,VS中是如何制作报表的。 第一步:添加数据集 第二步:根据向导,新建连接,输入相关信息。 下一步: 下一步: 之后一直下一步,选择select 语原创 2016-02-27 14:36:47 · 1520 阅读 · 56 评论 -
机房重构——组合查询(模板应用)
在机房收费系统中有三个地方用到了组合查询,分别是查看学生信息,产看上机信息,查看工作记录。这三个窗体中有大量重复的代码,只有少量的代码是不同的,鉴于此种情况,这次是重构了,就不要再向第一次那样复制粘贴了,这里我们可以用到一个设计模式——模板方法模式。 怎么用? 我们把三个窗体共性的东西抽象出一个窗体作为模板窗体,让其他三个窗体继承这个模板窗体,再分别加上自己个性化的东西就可以了原创 2016-02-20 17:41:12 · 1012 阅读 · 48 评论 -
存储过程——重构实战
关于存储过程的具体内容,我在前面的博客中已经写到过这里不再赘述,这次要说的是我再使用存储过程时遇到的一些问题,仅供大家参考。 先交代一下背景,因为要转泛型,所有我在实体中声明了Recharge表中的所有字段作为属性。 在存储过程中,我是这样写的 USE [chonggou]GO/****** Object: StoredProcedure [原创 2016-02-14 10:43:08 · 1574 阅读 · 37 评论 -
重构——DataTable转泛型
泛型简介 泛型可以最大限度的重用代码、保护类型的安全、提高性能。 泛型最常见的用途是创建集合类 泛型数据类型中使用的信息可在运行时通过反射获取。 可以创建自己的泛型接口、泛型类、泛型方法、泛型事件、泛型委托。 个人理解 我所使用使用的泛型是一个list是多个实体的集合。原创 2016-02-14 09:35:06 · 1525 阅读 · 43 评论 -
重构——存储过程返回值探索
前面的博客提到了,重构到退卡窗体的时候本来用的触发器,后来经过简单的分析觉得有点不太合适,于是最后决定用存储过程,可是用存储过程也不是那么一帆风顺的,到底发生了什么呢? 首先,说一下我的思路,首先在U层输入卡号,将卡号传到D层,之后在数据库中写一个存储过程,存储过程中有三条SQL语句,如下图: --查询Card表 select * from原创 2016-02-02 21:36:54 · 651 阅读 · 28 评论 -
重构——退卡——触发器试验
终于做到退卡了,又开始出问题了。还是老规矩,首先我们来分析一下需求。我查阅了很多的资料,大家关于这个退卡的需求大概都是,首先在T_Card中找到要退卡记录,删除card表中的记录,并将这条记录添加到退卡表中。如果是这个需求的话,最好的办法就是用触发器,什么是触发器呢? 定义:与表相关的特殊的存储过程。 特点:不能直接执行,只能被表上的Insert、Update、Dele原创 2016-01-31 23:49:47 · 670 阅读 · 21 评论 -
重构——注册——存储过程+事务
重构做到注册的时候遇到了点困难,简单的分析一下需求: 通过图可以看出,为了解耦,我将卡与学生分成了两张表,并且,卡表与学生表之间有外键约束关系,也就是说,必须先将学生信息填到T_Student表中,才能注册卡,在卡表中添加信息,还有就是需要将注册卡时的初始金额放到充值表中去。也就是说注册的需求就是添加学生表、添加卡表、添加充值表。需要同时对三张表进行操作,执行多条SQ原创 2016-01-31 18:27:24 · 817 阅读 · 25 评论 -
重构——七层登录
从三层到七层的转变确实是花费了不少的时间,不过收获也很大,咱们一起来看一下到底是怎么实现七层架构的。 首先,从宏观方面,我们来看一下,VS中七层架构的解决方案,让我们对七层有一个整体的认识。 这里我把SqlHelper放到了D层,当然,SQLHelper也可以单独拿出来,那样就变成了“八层” 那么问题又来了,这几层之间到底是什么关系呢?我们来看一下这几层之原创 2016-01-31 15:25:58 · 1356 阅读 · 48 评论 -
重构——数据库设计
重构工作开始没有几天,就遇到了困难,数据库该如何设计? 以前用的数据库都是现成的,或者说整个数据库结构都设计好了,我们只要照葫芦画瓢,或者干脆增加几个表就好了,可是这次真的要彻彻底底的自己设计一个数据库了。分析需求 有了第一遍机房收费系统的经验,分析需求的工作对我们来说就变的简单起来了,因为我们很清楚整个系统是如何运作的,有哪些需求,甚至系统有哪些窗体。下面我来简单原创 2016-01-02 15:14:14 · 1817 阅读 · 44 评论 -
三层登录实例——C#
上篇博客总结了三层的基本知识点,这次我们来实现一个基本的登录窗体的小例子,用实战的方法再次接触一下三层相关知识。 类图: 类图简析: 从图中我们可以看出U层、B层、D层都需要用到Model,所以U层、B层、D层都需要引用Model,即实体层。实体层的作用就是在三层之前传输数原创 2015-12-26 14:35:32 · 893 阅读 · 40 评论 -
机房重构--职责链模式应用
在重构的过程中,通过查询一些博客,最后决定用职责链模式来计算下机消费时间。 首先分析需求,我们都知道在基本数据设定中存在三个时间,递增单位时间、至少上机时间、准备时间。如果实际上机时间小于准备时间,则返回0;如果时间上机时间大于准备时间小于至少上机时间,则返回最少上机时间,如果实际上机时间大于至少上机时间,则返回n个递增单位时间。 接下来,我们来看一下职责链模式原创 2016-03-05 21:43:26 · 782 阅读 · 35 评论