购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 动手写一个三层结构

说了这么多,都只是停留在概念的层次,接下来,我们要写一个简单的三层结构的框架。这个框架只需要实现一个功能:用户输入两个数,并选择运算方法,运算只包括+、-、*、/。程序通过计算,将计算结果输出到用户界面上。

OK,需求已经非常明确了,就是要做一个简单的能进行加、减、乘、除运算的计算器。那么前端可以使用任何方式,比如控制台、WinForm、WebForm、MVC……为了直观和简单,这里将采用WebForm来做为前台界面。而BLL主要是将数据逻辑进行处理,并调用DAL层计算结果,将得到的结果返回给界面。DAL只需要提供数据就OK了。在本例中,不考虑边界异常(如太长的数字会溢出等情况)。

首先需要把项目的框架搭建好。新建一个名为Mol.Calc的解决方案,并加入一个Web项目(Mol.Calc.Portal)和两个类库项目(Mol.Calc.Bll和Mol.Calc.Dal),如图2-3所示。

图2-3 三层代码框架

PS:项目的命名一定要规范,一般来说,项目命名都是“公司.项目.模块名”。MOL所使用的开发环境是Windows 7+Visual Studio 2015+SQL Server 2012。关于环境的配置这里不会多说,否则显得本书很low,大家也会很不耐烦。

2.2.1 DAL层的实现

有了项目框架以后,就可以写代码了。首先需要一个处理数据的功能,这个功能大家一定要记住,和数据打交道的功能,最好放在DAL里。

在本例中,DAL层只需要处理加、减、乘、除4种运算就可以了。所以我们分别写4个函数来实现这4种运算,如图2-4所示。

图2-4 四则运算的实现

在本例中,加、减、乘、除这4种运算确实是太简单了,用它来占用一层有点浪费,不过在大项目中,这样写是非常有必要的。

2.2.2 BLL层的实现

接下来要实现BLL层。BLL层是三层里最难学的一层,因为大部分的BLL中的代码都是这样的:

//实例化一个DAL 对象
operate dal=new Mol.Calc.Dal.operate();
//调用DAL 计算加法1+2
dal.Add(1,2);

这样的代码看起来毫无生气,甚至没有存在的意义,因为DAL层就可以把计算做完了,为什么还要硬生生地加一个BLL层呢?

大家一定要记住,我们不是为了分层而分层,而是为了实现高效可维护的代码结构。

BLL层的作用是要处理业务逻辑,所谓的业务逻辑就是要判断UI层传入的数据应该如何排列组合提交给DAL层,如果有不合法的数据,就要及时中断,不向DAL层提交。

本例中,需要判断用户选择的是哪种运算,并去调用DAL层中相应的运算;除此之外,还要判断:当用户要计算除法时,用户输入的除数是否为0。

BLL层的代码如图2-5所示。

图2-5 BLL层代码

注意:其实除数不能为0这样的验证应该放到前台UI层去验证,这里把它放到BLL层里,是为了强化大家对BLL层的理解。

2.2.3 UI层的实现

前面的2.21节和2.22节,我们实现了数据的获取和处理。接下来就要写前台UI的代码了。UI代码比较简单,就是新建一个WebForm页面,名称为Calc.aspx,并在这个WebForm页面中加入两个文本框、一个下拉列表框(设置下拉列表框选项为+、-、*、/)、一个按钮、和一个显示计算结果的Label。UI后台,只需要实例化一个BLL层对象,并调用BLL层的方法既可。前台界面如图2-6所示。

图2-6 UI界面

UI后台的代码如图2-7所示。

图2-7 UI后台代码

这样,一个简单的三层代码结构的示例就完成了,运行结果如图2-8所示。

图2-8 程序运行结果 gjExB0j6M2d0JSSqYqtCii6e0TfQ868zV7qbj+hbD2vAA1HUNJFh5xSkcKCGSpSY

点击中间区域
呼出菜单
上一章
目录
下一章
×