首页 > 编程知识 正文

浅析阿q的精神胜利法,浅析思维导教学法

时间:2023-05-03 11:33:51 阅读:177791 作者:1883

前言:学习UML的时候,为了更深入地理解类图和包图,学习了“三层”知识。 当时还没有面向对象语言的基础,只是大致了解,并没有深入研究。

现在,经过C#、设计模式、VB.NET的学习,与“面向对象”发生了多次冲突。 这次用C#语言制作了活用了三层的小Demo。 详细介绍三层的“3W1H”。

一、what我们先看看第一个“w”。 什么是三层体系结构?

如图所示,最常见的三层架构是表示层、业务逻辑层和数据访问层。

1、呈现层UI:展示数据,收集用户输入的信息和操作。 2、业务逻辑层BLL:桥梁,数据处理、发布。 3、数据访问层DAL:与数据源进行交易,实现与数据库的交流和访问。

从总体上看,分层原则是各部门的职责,实现数据操作与显示的分离,体现高聚集、低耦合原则。

二、why为什么要使用三层架构? 是什么? 必要的前提之一是分析这个东西的利弊。 我们在使用一个东西之前,一定会权衡利弊。 优点: 1、复用2、解耦3、易维护

缺点: 1、性能下降2、级联修复3、成本增加

简单来说,分析三楼的利弊,使用三楼的目的是各类职责单一,使用方便。 我想起了设计模式中的单一责任原则,差不多吧。

三、where学习了为什么要用三楼。 下一步,我们将讨论在什么情况下使用三楼。 是什么?

不,1、逻辑简单2、没有数据存储需求。 1、逻辑复杂2、数据存储为库。 总之,人要发挥才能,物尽其用。 给蛇添麻烦,往往是徒劳的。 软件开发也是一样,在做小项目的目的时,是否分层确实不知道差别。 很吵。 但是,当项目变得复杂时,分层就显示出了它的优越性。 因此,根据情况使用三个层次。

四、在how中如何使用三层结构? 用使用3层系统登录的demo,看看3层的“HOW”。 在看代码之前,弄清楚两件事。

一、三层依赖关系。 如下图所示

2、三层之间的数据传输。 如下图所示

代码如下所示。

1、用于使用用户表的DAL层的UserDAO类。 代码ao类缩写

namespace log in.dal { public class userdao } public log in.model.userinfoselectuser (string username, stringpassword(using ) sqlconnection conn=new sqlconnection ) dbutil.conntring ) sqlcommand cmd=conn.create command PWD,emailfromuserswhereusername=@ usernameandpwd=@ password '; cmd.command type=command type.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.Get

Int32(0); user.UserName = reader.GetString(1); user.PassWord = reader.GetString(2); if (!reader.IsDBNull (3)) { user.Email = reader.GetString(3); } } return user; } } } }
2、DAL层的DbUtil类,用于连接数据源的。
namespace Login.DAL{ public class DbUtil { public static string Connntring = @"Server=AZZ-PC;Database=AZZ_Charge;User ID=sa;Password=123456"; }}
3、BLL层的LoginManager类。 namespace Login.BLL{ public class LoginManager { public Login.Model.UserInfo UserLogin(string userName,string password) { Login.DAL.UserDAO uDao = new Login.DAL.UserDAO(); Login.Model.UserInfo user=uDao.SelectUser(userName, password); if (user !=null ) { Login.DAL.ScoreDAO sDao=new Login.DAL.ScoreDAO(); sDao.UpdateScore(userName,10); return user; } else { throw new Exception ("登陆失败。"); } } }}
4、Model实体中的UserInfo类,用于封装数据,使数据可以在三层之中调用,本身不知道被谁调用了。
namespace Login.Model{ public class UserInfo { public int ID { get; set; } public string UserName { get; set; } public string PassWord { get; set; } public string Email { get; set; } }}
5、UI层,收集用户输入的信息,并做简单的判断。
namespace LoginUI{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { //IDbConnection conn = new SqlConnection("c......"); //IDbCommand cmd = conn.CreateCommand(); //cmd.CommandText = "Select UserName Form USERS WHERE"; //cmd.ExecuteReader(); string userName = txtUsername.Text.Trim(); string password = txtPassword.Text; Login.BLL.LoginManager mgr = new Login.BLL.LoginManager(); Login.Model.UserInfo user = mgr.UserLogin(userName, password); MessageBox.Show("登陆用户:" + user.UserName); } }}
五、小结
    首先,学习三层架构更多体会到了i+1有效输入的作用,当初在UML初次接触了三层,没有碰触什么火花,但是也留下了一下印象,让我这次再接触三层的时候,有了熟悉的感觉。再来,就是3W1H的学习方法,让我们直观的认识了一个新事物,从陌生到熟悉。最后,对于三层的学习只是初了解,有什么理解不对的地方,请多多指教。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。