三层--对你的认识再多一点

2024-03-01 06:18
文章标签 认识 三层 多一点

本文主要是介绍三层--对你的认识再多一点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开篇碎碎念

之前画UML图的时候接触了一点三层,那时候对三层充其量就算是知道了,这段时间学习三层,可以说是认识了,我的感觉是三层富有挑战,自己也很兴奋,当然也感觉到自己要学的东西还有很多的。培养计划上说,对于三层的认识是一个持久的过程,我想这个过程一定是一个充满惊喜的旅途。


认识三层

三层是什么?

对于一个项目,我们把他的架构分为了三层:UI(界面层),BLL(业务逻辑层),DAL(数据访问层)。三层共同工作,且相互独立的完成这个项目要实现的功能。

你要问为什么用三层,什么时候用呢?

也不是所有的软件设计都需要用到三层的架构,如果编码简单,业务简单,数据存储简单的话,我们完全没有必要用到三层了。不过,如见软件的功能越来越强大了,项目的业务相对复杂,我们需要有单独存储数据的部分,同时对数据存储也有过高的要求,这时我们就要用到三层架构了。
为什么要用到三层呢?1.三层使得每一层之间的耦合度降低,一层的变化,不会或较小的影响到其他层的修改。2.三层之间的任意一层可以抽出来被另一个设计的层来替换,也就是这三层之间的组合式自由的。3.设计人员可以专注的设计某一层,效率提高了。


你知道三层是干什么的吗?

上面的三层我们说了半天了,这三层是干什么的呢?

 1. UI:用户界面层,收集用户输入的信息,显示用户想要的信息。这一层没有业务逻辑,有点像拿来主义。2. DAL:数据访问层,访问数据源,并对数据源进行增删该查的操作。这一层也没有业务逻辑,知识跟数据源打交道。3. BLL:业务逻辑层,他是UI和DAL的一个桥梁,将UI层收集的数据传递给DAL,同时将DAL返回的数据传给UI供其显示;同时项目的功能实现当中的逻辑都是靠这一层来实现的。

下面是画的一个简单的图,帮助一下理解:
这里写图片描述


展示DEMO

关于三层怎么使用,我对他的认识也比较浅,通过自己敲的例子,来说一下三层吧。

UI

 '收集的信息string UserName = txtUserName.Text.Trim();string password = txtpassword.Text.Trim();'调用BLL层的数据类
Login.BLL .LoginManager mgr = new Login.BLL.LoginManager ();
Login.Model .UserInfo userUI = mgr.UserLogin(UserName, password);
'显示信息            
MessageBox.Show("登陆用户:" + userUI.UserName);

DAL

public Login.Model .UserInfo  SelectUser(string userName, string password)
{using(SqlConnection conn= new SqlConnection(DbUtil.ConnString)) ''访问数据库{SqlCommand cmd = conn.CreateCommand();cmd.CommandText = @"select ID, UserName, Password,    Email from Users where UserName = @UserName and Password=@Password" ;cmd.CommandType = CommandType.Text;cmd.Parameters .Add (new SqlParameter ("@UserName",userName )); //增加两个参数cmd.Parameters .Add (new SqlParameter ("@Password",password ));conn.Open();SqlDataReader reader = cmd.ExecuteReader();Login.Model.UserInfo user = null;while (reader.Read()){if (user == null){user = new Login.Model.UserInfo();}user.ID = reader.GetInt32(0);user.UserName = reader.GetString(1);user.Password = reader.GetString(2);user.Email = reader.GetString(3);}return user;}   
}

BLL

public   Login.Model .UserInfo   UserLogin (string userName, string password) //返回userinfo
{//throw new NotImplementedException();//访问D 层的Login.DAL.UserDAO uDAO = new Login.DAL.UserDAO();Login.Model.UserInfo userBLL = uDAO.SelectUser(userName, password);if (userBLL != null){Login.DAL.ScoreDAO sDAO = new DAL.ScoreDAO();sDAO.UpdateScore(userName, 10);return userBLL;}else{throw new Exception("登录失败!");}}

结语

对于三层的学习,还在继续,日后使用三层的时候一定要时刻想着:灵活性,复用性,可维护性。才疏学浅,多多指教!

这篇关于三层--对你的认识再多一点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761462

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

SpringMVC-1.认识及配置

SpringMVC是一个基于请求驱动的Web框架,和structs一样是目前最优秀的基于MVC框架,现在的项目一般都使用SpringMVC代替Structs。 MVC模式中,Model是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象在数据库中存取数据。View是应用程序中处理数据显示的部分,通常视图是依据模型数据创建。Controller是应用程序中处理用户交互的部分。通常控制器负责从视

【H2O2|全栈】关于HTML(1)认识HTML

HTML相关知识 目录 前言 准备工作 WEB前端是什么? HTML是什么? 如何运行HTML文件? 标签 概念 分类 双标签和单标签 行内标签和块标签 HTML文档结构 预告和回顾 UI设计相关 Markdown | Md文档相关  项目合作管理相关  后话 前言 本系列的博客将分享前端HTML的相关知识点。 本篇作为本系列的第一期博客,主要讲解H

认识鬼火引擎

一、Irrlicht简介 (1)概念Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台)、OpenGL 或它自己的软件着色程序,可以实现该引的完​全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(

Jenkins--pipeline认识及与RF文件的结合应用

什么是pipeline? Pipeline,就是可运行在Jenkins上的工作流框架,将原本独立运行的单个或多个节点任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。 为什么要使用pipeline? 1.流程可视化显示 2.可自定义流程任务 3.所有步骤代码化实现 如何使用pipeline 首先需要安装pipeline插件: 流水线有声明式和脚本式的流水线语法 流水线结构介绍 Node:

git:认识git和基本操作(1)

目录 一、版本控制器 1.安装git 2.创建git本地仓库 3.配置git 二、git操作(1) 1.工作区、暂存区、版本库 2.添加文件 3.查看.git 4.修改文件 一、版本控制器         所谓的版本控制器,就是能让你了解到每一个文件的修改历史。相应的,在企业级开发中,用来记录一个工程的每一次改动和管理版本迭代,同时方便多人协作开发。         g

设计之道:ORM、DAO、Service与三层架构的规范探索

引言: 实际开发中,遵守一定的开发规范,不仅可以提高开发效率,还可以提高项目的后续维护性以及项目的扩展性;了解一下本博客的项目设计规范,对项目开发很有意义 一、ORM思想 ORM(Object-Relational-Mapping)在对象模型和关系型模型之间做一个映射(转换)。 目的是为了解决面向对象编程语言的发展和关系型数据库的发展不匹配的问题 可以理解为: 将Java中的数据结

关于MANIFEST.MF的内容认识

文章来源 https://baike.baidu.com/item/MANIFEST.MF https://www.cnblogs.com/Gandy/p/7290069.html 一、百度百科关于MANIFEST.MF文件介绍 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了