分析好工厂模型的结构和布局后,首先需要分析系统所需数据,然后创建数据库,建立关系表(我就以注册为例,新建一个用户信息表)。
如下图(表中数据为注册成功用户):
(其中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引用。
注意:当一个类中需要用到其他类中的方法或属性时,需要添加这个类的引用。
待续:→↓