1)三层框架是什么?
按照书籍和博客文章里千篇一律的解释就是:UI层、BLL层、DAL层。这样的解释通常无法让人一时半会理解含义,总而言之在这里先大概说明一下三层架构。正如其他文章提到的一样,三层架构就是:表示层(与用户直接进行交互)、业务逻辑层(在表示层和数据访问层中间联系两者的重要角色)、数据访问层(与数据库实打实的做交易,存取数据之类的)。所谓UI层实际上就是跟用户打交道的那一层,比如控制台应用程序、asp.net web应用程序、窗体应用程序,这些项目文件都是用于跟用户打交道的,所以就是UI层。
2)为什么使用三层框架?
假设有一个窗体应用程序,比如新建了一个winform窗体应用。用户单击注册按钮后,将各种数据提交到后台,此时你可以直接调用ExecuteNonQuery()方法并将用户数据写入数据库。而三层架构的特点就是将用户注册的业务提交给了BLL层,再由BLL层提交给DAL层处理问题,这样用户的注册业务就经过了好几步才完成。为什么要这么麻烦?
有这么一家饭馆,由于刚起步所以只有厨师来管理整个饭馆。他们兼顾给客人点菜、做菜、上桌的事情。日子渐渐过去,饭馆规模将要扩充,这时候考虑雇佣服务员来为客人点单并将菜单交给厨房处理。增加服务员后,客人不会直接与厨师说要什么菜,因为客人变多意味着厨师变忙,而厨师变忙乱或许还会影响正在做的菜。所以客人就可以将菜单交给服务员,而服务员又将菜单交给厨房做菜,等厨房菜做好之后,服务员又将菜交给相应的客人。这样做的好处在于:①让复杂的工作变得有秩序。②其中任意一个环节出了问题,能够更加迅速发现并快速维护。③分工合作使得每个人的工作量变得固定,更加人性化。
代码的分层能让不同职员负责不同的层,通过分层能将业务细节分解,将不同功能的代码分散出来。这样做更加有利于系统的开发,业务越大可能分的层也越多,都是为了让系统便于维护和扩展。从另一方面讲,分工合作的优势就是让适合的人做自己擅长的事情,使得平均劳动时间变短,让效率变高。 软件的分层实际上就是实现“高内聚、低耦合”。就以上面的【用户单击注册按钮】的例子来讲,所有的包括业务逻辑、数据库操作用到的方法甚至sql语句都存在一个Form1类里面,这就必须使得做这个项目的人不但要会业务逻辑,还要懂数据库操作。如果分为三层来操作,那么UI层的编码人员不需要懂sql语句,它只要知道调用一个别人写好的方法就可以获得自己需要的东西就可以了,这样结构更加清晰,分工更明确。
3)如何使用三层架构?
以一个从数据库查询表并返回到窗体上的例子来解释,只要清楚了这个查询怎么实现,其他的增删改查也用同样的套路完成。
第1步,本次实验使用SQLserver。先设计好数据库,新建表Student并添加一些记录,表字段如下:
按照书籍和博客文章里千篇一律的解释就是:UI层、BLL层、DAL层。这样的解释通常无法让人一时半会理解含义,总而言之在这里先大概说明一下三层架构。正如其他文章提到的一样,三层架构就是:表示层(与用户直接进行交互)、业务逻辑层(在表示层和数据访问层中间联系两者的重要角色)、数据访问层(与数据库实打实的做交易,存取数据之类的)。所谓UI层实际上就是跟用户打交道的那一层,比如控制台应用程序、asp.net web应用程序、窗体应用程序,这些项目文件都是用于跟用户打交道的,所以就是UI层。
2)为什么使用三层框架?
假设有一个窗体应用程序,比如新建了一个winform窗体应用。用户单击注册按钮后,将各种数据提交到后台,此时你可以直接调用ExecuteNonQuery()方法并将用户数据写入数据库。而三层架构的特点就是将用户注册的业务提交给了BLL层,再由BLL层提交给DAL层处理问题,这样用户的注册业务就经过了好几步才完成。为什么要这么麻烦?
有这么一家饭馆,由于刚起步所以只有厨师来管理整个饭馆。他们兼顾给客人点菜、做菜、上桌的事情。日子渐渐过去,饭馆规模将要扩充,这时候考虑雇佣服务员来为客人点单并将菜单交给厨房处理。增加服务员后,客人不会直接与厨师说要什么菜,因为客人变多意味着厨师变忙,而厨师变忙乱或许还会影响正在做的菜。所以客人就可以将菜单交给服务员,而服务员又将菜单交给厨房做菜,等厨房菜做好之后,服务员又将菜交给相应的客人。这样做的好处在于:①让复杂的工作变得有秩序。②其中任意一个环节出了问题,能够更加迅速发现并快速维护。③分工合作使得每个人的工作量变得固定,更加人性化。
代码的分层能让不同职员负责不同的层,通过分层能将业务细节分解,将不同功能的代码分散出来。这样做更加有利于系统的开发,业务越大可能分的层也越多,都是为了让系统便于维护和扩展。从另一方面讲,分工合作的优势就是让适合的人做自己擅长的事情,使得平均劳动时间变短,让效率变高。 软件的分层实际上就是实现“高内聚、低耦合”。就以上面的【用户单击注册按钮】的例子来讲,所有的包括业务逻辑、数据库操作用到的方法甚至sql语句都存在一个Form1类里面,这就必须使得做这个项目的人不但要会业务逻辑,还要懂数据库操作。如果分为三层来操作,那么UI层的编码人员不需要懂sql语句,它只要知道调用一个别人写好的方法就可以获得自己需要的东西就可以了,这样结构更加清晰,分工更明确。
3)如何使用三层架构?
以一个从数据库查询表并返回到窗体上的例子来解释,只要清楚了这个查询怎么实现,其他的增删改查也用同样的套路完成。
第1步,本次实验使用SQLserver。先设计好数据库,新建表Student并添加一些记录,表字段如下:
三层架构解析

最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



