深入了解三层架构
什么是三层架构
所谓的三层架构就是指:将整个应用按照功能职责分成三层,包括数据访问层,业务逻辑层,界面表现层。其目的是为了“高内聚低耦合”。
三层的目的
数据访问层
程序与数据库连接的接口,负责和数据库交换数据。不应包含业务逻辑。
业务逻辑层
对得到的数据(从数据库得到或者从用户得到)进行处理,符合业务逻辑。然后将处理好的数据交给数据访问层或界面表现层。
界面表现层
用于展示数据,负责和用户交互。
最简示例
在这里,最简示例会完成三层架构的所有基本组成和一个基本的功能。通过最简示例,我们可以很快的了解一个系统的整理,而不需要过多的关注细节。我们来看看这个最简示例完成的效果。
数据库
数据库选择sqlite,这是为以后的一个桌面应用做准备。SQLite的可视化管理工具我选择SQLiteStudio,你可以点击链接下载。我们创建一个表,SQL语句如下。
CREATE TABLE man(
id INTEGER PRIMARY KEY NOT NULL,
userName VARCHAR(20),
password VARCHAR(20),
name VARCHAR(20),
age INT,
score INT
)
实体类
创建好表以后,我们创建一个实体类example.ManBean。这个实体类是用来在各个层之间传递数据的载体,具体代码见源码。
数据访问层
接口
我们为ManBean定义一个接口类example.IManDao。接口定义数据访问层会有哪些方法,这里我们只定义一个方法。
public ManBean login(String userName , String password);
实现
接口的实现需要使用JDBC的Jar包,我们使用的Jar包请。方法的具体实现请参见源代码。
业务逻辑层
接口
我们也为业务逻辑设计一个接口类example.IManService。我们在这里也只设定一个方法,而且这个方法和数据访问层一样。
实现
这里需要注意,业务逻辑层的实现必须依赖数据访问层,所以我们现在有这样一行代码。
IManDao manDao = new ManDaoImpl();
这行代码目前我们是写死了的,所以业务逻辑层只能依赖于example.IManDao。但是其实这不是最准确的做法,只是我们在这里暂时这样使用。
界面表现层
界面表现层我们简单的使用控制台来展示数据,将来我们会使用MVC模式来设计我们界面展示层。所以这里不过多的介绍。
好了,以上就是一个最简单的三层架构的应用。以后我会按照这个例子来更深入的介绍三层架构的每一层所使用到的技术和设计思想。也就是在这个最简系统上面添枝加叶。这些分享都是个人的学习总结,不代表权威观点,用来共同进步。