C#三层架构:
三层架构==表现层(UI)+业务逻辑层(BLL)+数据访问层(DAL)+s实体类库(Model)
(1)在信息查询系统的编写中,首先建立了一个Model实体类库,里面编写了学生类Student:
namespace Models
{
/// <summary>
/// 实体类:学生信息
/// </summary>
public class Student
{
public string SNO { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public DateTime Birthday { get; set; }
public string Mobile { get; set; }
public string Email { get; set; }
public string HomeAddress { get; set; }
public string PhotoPath { get; set; }
}
}
实体类:
为什么使用实体类:
1.使程序简洁易懂,便于维护
2.暗合接口不变原则
3.体现面向对象思想
在本程序中,学生信息是贯穿整一个程序的对象,任何操作都是针对它来进行的,因此在实体类库中定义一个学生信息类,因为接下来我们要把.csv文件的内容读取到datagridview中,如果我们用list来转载文件内容,再用dgvgriview.datasourse = objstuedentlist绑定数据源,这样就会比单纯操作字符串方便很多。
若涉及数据库时,带来的益处会更多,这个之后我写那个学生选课系统再总结了。
实体类的定义(get,set访问器):
http://www.cnblogs.com/liuyaozhi/p/4920275.html
这篇文章写的很好。
我们定义student的时候直接用public string sno { get; set; },等价于
public class student
{
private string SNO;//私有成员变量
public string sno//属性
{
get
{
return SNO;
}
set
{
SNO = value;
}
}
}
//访问:
student test = new student();
test.sno = "hello world";//注意访问的时候是sno而不是SNO,get set 的目的就是封装SNO,外界只能通过sno来访问SNO.
(2)UI层的编写
UI层即用户界面层,我们把更用户操作直接相关的操作(控件事件)放在UI层,比如点击导入数据,点击添加等等。另外有一些自定义方法,比如清空详细信息栏,获取详细信息栏学生信息等,与控件相关的只能写在这一层。注意控件方法和自定义方法分开编写并标注。
(3)数据访问层的编写
在DAL类库里,我们写了StudentService和FileOpreator两个类,前者负责对student对象的操作,比如按照学号查询时,传入学号,返回相应的list,后者针对文件的操作,比如增加学生信息后把更新的objlist写入文件里。
(4)业务逻辑层(BLL)对传送数据进行逻辑判断分折,并进行传送正确的值
以后涉及数据库时再深入了解。