● C/S篇
文章平均质量分 89
z-xiaoyao
这个作者很懒,什么都没留下…
展开
-
机房收费系统基本流程
刚刚完成了机房收费系统,对机房收费系统的基本流程做了一些简单的总结,有不合理之处,欢迎指正。其中,一般用户的权限比较低,只有一些基本的查看功能看。操作员的权限稍微高了一些,除拥有一般用户的所有权限外,还有注册、充值、退卡的功能。"注册"就是给学生开户."充值"就是给卡内余额不足的同学充值,“退卡”是指将卡内余额退还给学生。管理员的权限是最高的,除拥有一般用户,操作员的所有权原创 2015-07-21 10:29:51 · 758 阅读 · 301 评论 -
设计模式——代理VS中介者
代理模式和中介者模式,都会有一个中间类,即所谓的代理者和中介者,那这两个模式有哪些区别呢,我们把这两个模式放到一起来看一下。 第一回合——定义比较 代理模式:为其他对象提供一种代理以控制对这个对象的访问。 中介者模式:用一个中介对象来封装一系列的对象交互,中介者使对象不需要显式的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。原创 2015-12-27 13:34:17 · 2727 阅读 · 42 评论 -
重构——数据库设计
重构工作开始没有几天,就遇到了困难,数据库该如何设计? 以前用的数据库都是现成的,或者说整个数据库结构都设计好了,我们只要照葫芦画瓢,或者干脆增加几个表就好了,可是这次真的要彻彻底底的自己设计一个数据库了。分析需求 有了第一遍机房收费系统的经验,分析需求的工作对我们来说就变的简单起来了,因为我们很清楚整个系统是如何运作的,有哪些需求,甚至系统有哪些窗体。下面我来简单原创 2016-01-02 15:14:14 · 1817 阅读 · 44 评论 -
重构——七层登录
从三层到七层的转变确实是花费了不少的时间,不过收获也很大,咱们一起来看一下到底是怎么实现七层架构的。 首先,从宏观方面,我们来看一下,VS中七层架构的解决方案,让我们对七层有一个整体的认识。 这里我把SqlHelper放到了D层,当然,SQLHelper也可以单独拿出来,那样就变成了“八层” 那么问题又来了,这几层之间到底是什么关系呢?我们来看一下这几层之原创 2016-01-31 15:25:58 · 1356 阅读 · 48 评论 -
重构——注册——存储过程+事务
重构做到注册的时候遇到了点困难,简单的分析一下需求: 通过图可以看出,为了解耦,我将卡与学生分成了两张表,并且,卡表与学生表之间有外键约束关系,也就是说,必须先将学生信息填到T_Student表中,才能注册卡,在卡表中添加信息,还有就是需要将注册卡时的初始金额放到充值表中去。也就是说注册的需求就是添加学生表、添加卡表、添加充值表。需要同时对三张表进行操作,执行多条SQ原创 2016-01-31 18:27:24 · 817 阅读 · 25 评论 -
重构——退卡——触发器试验
终于做到退卡了,又开始出问题了。还是老规矩,首先我们来分析一下需求。我查阅了很多的资料,大家关于这个退卡的需求大概都是,首先在T_Card中找到要退卡记录,删除card表中的记录,并将这条记录添加到退卡表中。如果是这个需求的话,最好的办法就是用触发器,什么是触发器呢? 定义:与表相关的特殊的存储过程。 特点:不能直接执行,只能被表上的Insert、Update、Dele原创 2016-01-31 23:49:47 · 670 阅读 · 21 评论 -
重构——存储过程返回值探索
前面的博客提到了,重构到退卡窗体的时候本来用的触发器,后来经过简单的分析觉得有点不太合适,于是最后决定用存储过程,可是用存储过程也不是那么一帆风顺的,到底发生了什么呢? 首先,说一下我的思路,首先在U层输入卡号,将卡号传到D层,之后在数据库中写一个存储过程,存储过程中有三条SQL语句,如下图: --查询Card表 select * from原创 2016-02-02 21:36:54 · 651 阅读 · 28 评论 -
重构——DataTable转泛型
泛型简介 泛型可以最大限度的重用代码、保护类型的安全、提高性能。 泛型最常见的用途是创建集合类 泛型数据类型中使用的信息可在运行时通过反射获取。 可以创建自己的泛型接口、泛型类、泛型方法、泛型事件、泛型委托。 个人理解 我所使用使用的泛型是一个list是多个实体的集合。原创 2016-02-14 09:35:06 · 1525 阅读 · 43 评论 -
存储过程——重构实战
关于存储过程的具体内容,我在前面的博客中已经写到过这里不再赘述,这次要说的是我再使用存储过程时遇到的一些问题,仅供大家参考。 先交代一下背景,因为要转泛型,所有我在实体中声明了Recharge表中的所有字段作为属性。 在存储过程中,我是这样写的 USE [chonggou]GO/****** Object: StoredProcedure [原创 2016-02-14 10:43:08 · 1574 阅读 · 37 评论 -
机房重构——组合查询(模板应用)
在机房收费系统中有三个地方用到了组合查询,分别是查看学生信息,产看上机信息,查看工作记录。这三个窗体中有大量重复的代码,只有少量的代码是不同的,鉴于此种情况,这次是重构了,就不要再向第一次那样复制粘贴了,这里我们可以用到一个设计模式——模板方法模式。 怎么用? 我们把三个窗体共性的东西抽象出一个窗体作为模板窗体,让其他三个窗体继承这个模板窗体,再分别加上自己个性化的东西就可以了原创 2016-02-20 17:41:12 · 1012 阅读 · 48 评论 -
机房重构——报表
在VS中报表的实现还是比较容易的,第一次机房收费时,我们用了三方工具来制作报表,相对俩说是比较麻烦的,我们来看一下,VS中是如何制作报表的。 第一步:添加数据集 第二步:根据向导,新建连接,输入相关信息。 下一步: 下一步: 之后一直下一步,选择select 语原创 2016-02-27 14:36:47 · 1520 阅读 · 56 评论 -
三层登录实例——C#
上篇博客总结了三层的基本知识点,这次我们来实现一个基本的登录窗体的小例子,用实战的方法再次接触一下三层相关知识。 类图: 类图简析: 从图中我们可以看出U层、B层、D层都需要用到Model,所以U层、B层、D层都需要引用Model,即实体层。实体层的作用就是在三层之前传输数原创 2015-12-26 14:35:32 · 893 阅读 · 40 评论 -
三层简介
宏观定义: 表示将功能进行有序的分组:应用程序专用功能位于上层,跨越应用程序领域的功能位于中层,配置环境专用功能位于低层。 具体定义: 表现层:展现给用户的界面,即用户在使用系统时的所见所得。 业务逻辑层:对数据层的操作和对业务的处理,接收用户的指令或数据输入,提交给数据访问层,同时将业务逻辑层的结果返回给用户。原创 2015-12-24 16:26:21 · 1142 阅读 · 258 评论 -
设计模式——观察者模式
名字: 观察者模式 属性: 行为型 定义: 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己 类图: 优点: 让耦合的双方都依赖于抽象,而不依赖于具体,使得各自的变化都不会影响另一边的变化原创 2015-12-15 20:03:28 · 595 阅读 · 26 评论 -
机房收费系统之登陆模块(一)
在机房收费系统的登陆模块中有一些看起来比较高大上的代码,经过查阅资料,才发现这些看起来高大上的东西并没有那么神秘,下面我来简单叙述一下。首先我们来看模块的定义部分:public fmainform as frmmain那么这句代码定义了什么呢?这句代码的意思是声明一个变量fmainform,其类型是frmmain,这里的frmmain就是我们主窗体的名字。与这句代码紧密相关的还原创 2015-07-24 13:00:09 · 779 阅读 · 157 评论 -
机房收费系统之组合查询
在机房收费系统中,组合查询是非常重要的一部分,很多人刚开始接触的时候都感到无从下手。其实,如果静下心来仔细分析一下,组合查询也是不难的。下面,我们来慢慢分析一下。首先,我们先从界面入手:从界面上我们可知,这个组合查询分为三组查询条件,两个组合关系。功能:a. 只选择第一组查询条件,不选择组合关系——可以执行查询。如:卡号 b. 选择第一个组合关系(”与“ ”原创 2015-07-25 13:39:10 · 997 阅读 · 121 评论 -
机房收费之上机、结账分析
在机房收费系统中上、下机、结账可以说是整个系统的核心。可以这么说,只要解决了这些问题,机房收费系统就已经完成一半了。这块最主要的问题就是思路理不清,只要整理好思路,很多问题就可以迎刃而解。我整理了一下思路,我们一起来分析一下。首先要说的是上机:思路整理如下:这里要说一下的是对”使用“的判断,”使用“判断的是该卡是否已经退卡,如果已经退卡,则该卡的状态为”不使用“,状态为”不原创 2015-07-27 10:06:15 · 923 阅读 · 122 评论 -
RUP、CSE、CMMI简要分析
RUP(统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。RUP描述了如何有效的利用商业的可靠的方法开发和部署软件,是一种重量级过程(厚方法学),适用于开发大型项目。 RUP优点:1、在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量、控制软件等方面,针对所有关键的开发活动为每个必要的开发成员提供了必要的准则、模板和工具指导,确保全体开发人员共享相原创 2015-08-03 23:24:57 · 1994 阅读 · 84 评论 -
软件开发阶段及其文档简述
众所周知,软件开发是一个严格的过程,其严格性体现在哪呢? 它体现在软件开发过程中不同阶段的各个文档上,软件开发是一个文档驱动的过程,每一阶段都有不同的文档与其对应。那么软件开发到底分为几个阶段呢?每一阶段的任务又是什么呢? 软件生命周期分为六个阶段,即问题定义和规划阶段、需求分析阶段、软件设计阶段、程序编码阶段、软件测试阶段和运行维护阶段。 问题定义、规划阶段:开发方、原创 2015-08-16 22:00:30 · 12576 阅读 · 213 评论 -
UML九种图概述
UML中最重要的就是那九种图了,下面我们来总结一下每种图的基本知识。 一、用例图 要素:角色(Actor)、用例(Use Case)、关系 用例图的关联关系又分为四种,如下图 关系:关联关系(Association)、包含关系(Include)、扩展关系(Extend)、泛化关系(Generalization)原创 2015-08-24 00:24:45 · 1380 阅读 · 106 评论 -
类图中的四种关系
代码如人生,在生活中,每个人都不是一个单独的个体,而是一个大环境中的一员,例如:我与我爸的关系是父子,与导员的关系是师生,与宿舍某个人的关系是同学。正是由于这些关系的存在才让我与其他人产生了关联。同理,类与类之间也同样具有某种关系。这种关系有四种,下面我们一一介绍。 泛化(Generalization) 泛化表示类与类之间的继承关系,子元素共享父元素的结构和行为。例如:男人和女人都具有原创 2015-09-13 23:04:57 · 4003 阅读 · 63 评论 -
重载VS重写
接口和抽象类区别重写和重载区别事件和委托区别原创 2015-10-31 17:03:28 · 1147 阅读 · 58 评论 -
设计模式——三工厂
设计模式中的三工厂指简单工厂模式、工厂方法模式、抽象工厂模式。 我们来逐步比较这三个模式的区别: 简单工厂模式核心代码://简单运算工厂类Public class OperationFactoty { Public static Operation createOperate(stirng operate)原创 2015-11-21 11:05:07 · 827 阅读 · 53 评论 -
设计模式——组合模式
组合模式是设计中非常重要的一个模式,下面是我对组合模式的一个简单总结。 名字: 组合模式 定义: 将对象组合成树状结构以表示‘部分-整体’的结构层次。组合模式使得用户对单个对象和组合对象的使用具有一致性。 类图: 优点: 一、 定义了组合对原创 2015-12-06 14:54:53 · 723 阅读 · 23 评论 -
机房重构--职责链模式应用
在重构的过程中,通过查询一些博客,最后决定用职责链模式来计算下机消费时间。 首先分析需求,我们都知道在基本数据设定中存在三个时间,递增单位时间、至少上机时间、准备时间。如果实际上机时间小于准备时间,则返回0;如果时间上机时间大于准备时间小于至少上机时间,则返回最少上机时间,如果实际上机时间大于至少上机时间,则返回n个递增单位时间。 接下来,我们来看一下职责链模式原创 2016-03-05 21:43:26 · 782 阅读 · 35 评论