zoukankan      html  css  js  c++  java
  • 工厂模型学习心得(二)(ASP.Net)

    分析好工厂模型的结构和布局后,首先需要分析系统所需数据,然后创建数据库,建立关系表(我就以注册为例,新建一个用户信息表)。

    如下图(表中数据为注册成功用户):

    (其中delFlag为删除标识,通常数据库中的数据为了不至于丢失只是逻辑删除,而不是物理删除)

    数据库建好后,开始各代码的书写:各个层次的建立与系统结构的分析顺序刚好相反。

    下图为工厂模型项目中的各层:

    从上到下一次是业务逻辑层、工厂、表示层、接口、模型层、数据访问层。

    首先需要建立模型层(把关系表转化为面向对象),新建一个类库,取名为Model,然后在Model层中新建一个类,取名为UserInfo(一般为了方便管理,通常将表名作为类名),再将数据表中的字段利用属性封装到对应的类中,其他层中代码的传参都是利用类和属性来实现的。此举避免了团队成员间定义参数的不统一,从而造成传参紊乱。Model就好比是传参的一个标准,所有人调用的参数须用属性实现,成员间不会因书写习惯的不统一而给其他人员带来麻烦。示例代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace Model
    {
        public class UserInfo
        {
            private int userId;
            private string userName;
            private string accountNum;
            private string password;
            private string telephone;
            private string address;
            private bool delFlag;
            private int osFlag;
            /// <summary>
            /// 用户编号
            /// </summary>
            public int UserId
            {
                get;
                set;
            }
            /// <summary>
            /// 用户名
            /// </summary>
            public string UserName
            {
                get;
                set;
            }
            /// <summary>
            /// 用户帐号
            /// </summary>
            public string AccountNum
            {
                get;
                set;
            }
            /// <summary>
            /// 用户密码
            /// </summary>
            public string Password
            {
                get { return password; }
                set { password = value; }
            }
            /// <summary>
            /// 联系方式
            /// </summary>
            public string Telephone
            {
                get;
                set;
            }
            /// <summary>
            /// 联系地址
            /// </summary>
            public string Address
            {
                get;
                set;
            }
            /// <summary>
            /// 删除标识
            /// </summary>
            public bool DelFlag
            {
                get;
                set;
            }
            /// <summary>
            /// 操作标识
            /// </summary>
            public int OsFlag
            {
                get;
                set;
            }
        }
    }

    模型层写完后,再建立数据访问(对数据库进行操作),取名为SQLServerDAL,但在此之前先要先定义口,因为接口是为数据访问层定义的标准,就像生活中的电源插座插孔(接口),三个插头的电器只能插入三孔的插孔,两个插头的电器只能插入俩个空的插孔。新建一个类库取名为IDAL,在此类库中新建一个接口,取名IUserInfo,接口中的代码主要是定义方法,但并不实现方法,这些方法将在数据访问层中实现,一般先定义增删改查四个方法,就这些方法为例,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;

    namespace IDAL
    {
        public interface IUserInfo
        {
            /// <summary>
            /// 功能:添加
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            int Add(Model.UserInfo model);
            /// <summary>
            /// 功能:删除
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            int Delete(Model.UserInfo model);
            /// <summary>
            /// 功能:更新
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            int Update(Model.UserInfo model);
            /// <summary>
            /// 功能:查找
            /// </summary>
            /// <param name="model"></param>
            /// <returns></returns>
            DataSet FindList(Model.UserInfo model);
        }
    }

    定义接口需要注意的几点:
    定义接口需要注意的几点:
    1.记得写注释,方便其他人调用;
    2.定义接口时,接口名要以大写字母i开头,接口必须为公有类型(+public);
    3.接口是在数据访问层中实现的;
    4.接口中用到了模型层中的类,所以要添加Model引用。

     

    注意:当一个类中需要用到其他类中的方法或属性时,需要添加这个类的引用。

     

    待续:→↓

  • 相关阅读:
    选择Nodejs的N个理由
    linux下查看内存的命令
    Nginx反向代理和负载均衡部署指南
    linux下创建,删除,移动文件命令
    linux文件创建、查看、编辑命令
    Linux下rar命令详解
    linux下tar命令详解
    linux下使用tar命令
    Eclispe怎么给工作空间下的项目分组
    MAT(Memory Analyzer Tool)工具入门介绍
  • 原文地址:https://www.cnblogs.com/_ymw/p/1859949.html
Copyright © 2011-2022 走看看