zoukankan      html  css  js  c++  java
  • 三层架构学习实例

    如有雷同,不胜荣欣,如转载,请注明

     

    一、三层架构实例

     

    首先学习三层架构模式­——三层架构实现的留言和查看留言

    下面是本人学习三层架构的一点感想和理解,肯定有许多不足的地方,欢迎大家斧正,谢谢,废话到此,下面咱们开始三层架构

    大家都知道三层架构分为:1,表示层(UI)2,业务逻辑层(BLL)3,数据访问层(DAL),下面咱们用一个简单的实例,实战三层架构

    首先建立一个空白的解决方案,添加如下项目以及文件

    1.添加一个ASP.net WebApplication项目,命名为UI,新建WebForm类型文件User.aspx(含User.aspx.cs)

    2.添加ClassLibrary项目,命名为BLL,新建Class类型文件UserBLL.cs

    3.添加ClassLibrary项目,命名为DAL,新建Class类型文件UserDAL.cs。添加SqlHelper引用,(这个是微软的数据访问类,也可以不用,直接编写所有的数据访问代码。我一般用自己写的数据访问类DataAccessHelper)

    4.添加ClassLibrary项目,命名为Model,新建Class类型文件UserModel.cs

    5.添加ClassLibrary项目,命名为IDAL,新建Interface类型文件IUserDAL.cs

    6.添加ClassLibrary项目,命名为ClassFactory

    相信大家已经都能很清楚的看出来了,

    下图是项目实例解决方案的文件结构实例

     

    BLL层

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using Model;

    using DAL;

     

    namespace BLL

    {

        public class UserBLL

        {

            UserDBdb = new UserDB();

            public bool AddUser(UserInfouserInfo)

            {

                returndb.AddUser(userInfo);

            }

     

     

            public void SelectUser(UserInfouserInfo)  //根据传入的username或email得到用户详细信息

            {

                //

            }

     

            public void IsExist(UserInfouserInfo)  //判D断指定的username或email是否存在

            {

                //

            }

        }

    }

    DAL层

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using Model;

    using System.Data.SqlClient;

    using System.Configuration;

    using System.Data;

     

    namespace DAL

    {

        //public classUserDAL

        //{

           

        //}

     

        public class UserDB

        {

            UserInfoui = new UserInfo();

            public IList<UserInfo>SelectUser()  //返回所有的用户信息列表

            {

                //

                returnnull;

            }

     

            public UserInfo SelectUser(intuserId)  //返回指定用户的相关信息

            {

                //

                returnui;

            }

     

            public bool AddUser(Model.UserInfouserInfo)

            {

                // stringsetting =ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

                stringsetting = ConfigurationSettings.AppSettings["ConnectionString"].ToString();

                SqlConnectionmyconn = new SqlConnection(setting);

                myconn.Open();

                SqlCommandcmd = new SqlCommand("insert into dbo.[user]([name]) values(@name)",myconn);

                cmd.Parameters.AddWithValue("@name", userInfo.UserName);

                if(cmd.ExecuteNonQuery() > 0)

                {

                    returntrue;

                }

                else

                {

                    returnfalse;

                }

            }

     

            public boolInsertUser(UserInfo user)  //新增用户信息

            {

                //

                returnfalse;

            }

     

            public bool UpdateUser(UserInfouser)  //更新用户信息

            {

                //

                returnfalse;

            }

     

            public void DeleteUser(intuserId)  //移除用户信息

            {

                //

            }¨

        }

    }

    实体类Model

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

     

    namespace Model

    {

        // 实体类实质:实体类就是在完成数据库与实体类对应的功能,1个类是一张表,一个属性是一个字段

        ///<summary>

        ///实体类,仅用于数据的存储(复杂的数据)

        ///</summary>

        //public classusermodel

        //{

        //    //

        //}

     

        public class UserInfo

        {

            ///<summary>

            ///实体类用户信息

            ///</summary>

            publicUserInfo() { }

     

            privatestring userName;

     

            public string UserName

            {

                get{ return userName; }

                set{ userName = value; }

            }

     

            privatestring passWord;

     

            public string PassWord

            {

                get{ return passWord; }

                set{ passWord = value; }

            }

     

            public int sex;

     

            privatestring birthday;

     

            public string Birthday

            {

                get{ return birthday; }

                set{ birthday = value; }

            }

     

            privatestring email;

     

            public string Email

            {

                get{ return email; }

                set{ email = value; }

            }

     

            privatestring qq;

     

            public string QQ

            {

                get{ return qq; }

                set{ qq = value; }

            }

     

            privatestring mobilePhone;

     

            public string MobilePhone

            {

                get{ return mobilePhone; }

                set{ mobilePhone = value; }

            }

        }

    }

     

    ClassFactory

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

     

    namespace ClassFactory

    {

        public class Class1

        {

        }

    }

    IDAL数据库访问接口类

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

     

    namespace IDAL

    {

        interface IUserDAL

        {

        }

    }

     

    UI层

     

     

     

    三层架构的关系

     

     

    上述代码中DAL主要是对数据库中的内容的操作,在这里就是向数据库中添加用户。BLL则主要是调用DAL层的操作,返回DAL层添加用户的结果(true或者false)。这样也就是在客户端与数据库中加了一个中间层,使得两层的依赖性减小。UI层则主要完成响应用户的需求,去调用BLL层实现的adduser方法,DAL层就是实实在在做这件事情的操作。

  • 相关阅读:
    Mvc+三层(批量添加、删除、修改)
    js中判断复选款是否选中
    EF的优缺点
    Git tricks: Unstaging files
    Using Git Submodules
    English Learning
    wix xslt for adding node
    The breakpoint will not currently be hit. No symbols have been loaded for this document."
    Use XSLT in wix
    mfc110ud.dll not found
  • 原文地址:https://www.cnblogs.com/ching2009/p/4293588.html
Copyright © 2011-2022 走看看