下面我就以我所理解的MVP模式写一个小实例,是关于某个员工基本信息的数据绑定与编辑的操作。

在员工基本信息的编辑界面中,需要展示的信息包括员工的工号,姓名,性别,籍贯,出生年月等等,在此实例中我只展示这五个字段,一个绑定员工信息的方法,以及一个更新员工信息的事件。

首先,定义员工的Model层,该层代码与三层架构的实体层是相同的。


 1namespace Model
 2{
 3    using System;
 4    public class StaffInfo
 5    {
 6        private string _stfId;
 7        private string _stfName;
 8        private string _sex;
 9        private string _native;
10        private string _birthDay;
11
12        public StaffInfo()
13        {
14        }

15
16        public StaffInfo(string stfId, string stfName, string sex, string native, string birthDay)
17        {
18            this._stfId = stfId;
19            this._stfName = stfName;
20            this._sex = sex;
21            this._native = native;
22            this._birthDay = birthDay;
23        }

24        /// <summary>
25        /// 员工工号
26        /// </summary>

27        public string StfId
28        {
29            get return _stfId; }
30            set { _stfId = value; }
31        }

32        /// <summary>
33        /// 员工姓名
34        /// </summary>

35        public string StfName
36        {
37            get return _stfName; }
38            set { _stfName = value; }
39        }

40        /// <summary>
41        /// 性别
42        /// </summary>

43        public string Sex
44        {
45            get return _sex; }
46            set { _sex = value; }
47        }

48        /// <summary>
49        /// 籍贯
50        /// </summary>

51        public string Native
52        {
53            get return _native; }
54            set { _native = value; }
55        }

56        /// <summary>
57        /// 出生年月
58        /// </summary>

59        public string BirthDay
60        {
61            get return _birthDay; }
62            set { _birthDay = value; }
63        }

64    }

65}

 

第二步,定义员工的页面接口 IStaffDetailView ,在页面中,一般有一些常用的自定义函数,这时我们可以把它定义在父接口,然后用一个页面父类去实现它,如下面的MessageBox这个函数,就可以用这样的方式。那么我们页面接口就可以继承这个父接口,这样可以增强代码的重用性。

 

Code

 

第三步,定义员工数据访问类,我这里只是给一个示例,真实的项目中当然要封装一下才行。

 

Code

第四步,定义员工Presenter层

 

Code

第五步:实现View接口,我这里以WebFrom为例,在页面中做了数据绑定与更新数据事件两个操作,还有如绑定GridView等等操作,大家可以探讨。

 

Code

以上是整个实例的代码。这个实例与李春雷的实例的大体结构类似,不同之处在于以下两点

1、视图接口中增加了按钮事件,这个思路来源于http://www.cnblogs.com/chinasf/archive/2006/12/20/597987.html

2、明确了Model层与Control层的职责,在Model层的设计中我采用了与三层框架的实体层相同的方式,DataAccess作为Control层,它的作用在于对数据库进行操作。

posted on 2009-09-04 13:54  落英  阅读(648)  评论(1)    收藏  举报