信息查询系统编写--三层架构

C#三层架构:

三层架构==表现层(UI)+业务逻辑层(BLL)+数据访问层(DAL)+s实体类库(Model)

(1)在信息查询系统的编写中,首先建立了一个Model实体类库,里面编写了学生类Student:

namespace Models
{
    /// 
    /// 实体类:学生信息
    /// 
    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)对传送数据进行逻辑判断分折,并进行传送正确的值
以后涉及数据库时再深入了解。

你可能感兴趣的:(c#)