人脑对新事物的掌握,认知过程总是从具体到抽象(感知具体实例然后总结出一般规律),如果反过来初学者就会感觉迷惑(所以很多人是业务高手但却不是好的授业者)。‘三层架构’的说法太过抽象,光看理论的话初学者难免会感觉很困惑,最好的办法还是从实例入手。下面这个例子很浅显地阐述了三层架构的概念,初学者只要一点点必要的知识背景就能理解它的内容。——博主注
‘多层架构’一方面是一种思维,另一方面,在实现(把功能通过编写代码实现出来叫‘实现’)上的表现为‘把不同层次的代码用不同的类封装(分开)’,也就是一是一二是二,规范、清楚、明白,便于管理维护或扩展——博主注
最近在网上找了一些资料学习三层架构的知识,初学者就像我来说理解那些抽象的道理还是很困难的,其实不妨用一个小例子来好好地分析一下
首先,我们需要明白的是三层架构的划分原理:(如下图所示)
各个层的任务
数据访问层:为数据库中的每个表,设计一个数据访问类,类中实现:记录的插入、删除、单条记录的查询、记录集的查询,单条记录的有无判断等基本的数据库操作方法。对于一般的管理信息软件,此层的设计时类似的,包含的方法也是基本相同,此层的任务是:封装每个数据表的基本操作,为实现业务逻辑提供数据库访问的基础。
业务逻辑层:为用于的每个功能模块,设计一个业务逻辑类,此时,需要利用相关的数据访问层类中,记录操作方法的特定集合,来实现每个逻辑功能。
什么是业务逻辑?我们现在正在学习的三层架构目的无非是为了进行软件产品的开发服务的,而软件产品,一定是在某个领域内去实现某些业务。业务逻辑就是业务的逻辑过程。从软件实现的角度来说,业务逻辑就是当你执行一个操作(触发一个‘事件’,比如点击一个按钮)时,这个操作执行的相应功能(也就是这个功能的执行的逻辑过程,比如点击的是个登陆框的提交按钮,‘提交’这个功能就可以理解成业务逻辑)!——博主个人浅见
界面层:根据用户的具体需求,为每个功能模块,部署输入控件,操作控件和输出控件,并调用业务逻辑层中类的方法实现功能。
层和层之间的调用关系:
数据访问层的类,直接访问数据库,实现基本记录操作。
业务逻辑层的类,调用相关的数据访问类,实现用户所需功能。
界面层部署控件之后,调用业务逻辑层的类,实现功能。
说了这么多,先看看一个简单的小例子吧。
下面是一个学生信息管理系统中课程添加的一个小功能。
数据访问层的方法设计
一般为系统数据库中的每个表设计一个数据访问类,实现基本的记录操作。为了实现课程记录的添加,目前,可以在数据访问类中包含下面的方法:
1、 判断某主键的记录是否存在
方法名:Exist
形参:代表主键的变量
返回值:bool
2、 课程的添加
方法名:AddCourse
形参:代表此表实体类的对象
返回值:int
业务逻辑层的方法设计
一般系统中的某个功能模块设计一个业务逻辑层的类,实现此模块的所有业务逻辑,在课程添加中,我们所需要的业务逻辑是位课程添加。
首先,需要调用数据访问类的方法,因此,在类内设计一个字段为此类对象
其次,此类需要设计下面的方法:
1、 添加课程:
方法名:AddCourse1
形参:课程类对象
返回值:void
首先是调用数据访问层中的exist()方法,判断形参所表示的课程类对象是否存在,若存在方法返回。
接着调用数据访问层中的AddCourse()方法,添加课程,并利用返回值判断添加是否成功。
界面层的设计
界面层的设计,首先需要根据用户的功能需求部署恰当的控件。然后,把工恩那个实现代码放在恰当控件的恰当事件中,在这些代码中,需要调用业务逻辑层的方法实现,课程添加时,界面上主要的功能如下:
1、 按下添加按钮,实现课程记录的插入
代码放在按钮的click事件中;
代码设计思路:首先进行控件的正确性验证;其次利用控件的输入值,生成一个课程实体类对象;利用此对象,调用业务逻辑类对象的添加方法,插入记录,然后刷新。
这样就完成了。
大家有没有发现在这里边是按照数据访问层、业务逻辑层、界面层一层一层的调用的。
就写到这里了,我也是刚刚学习,希望大家能够提出宝贵的意见和建议。