您的位置:首页 > 运维架构 > 网站架构

基于.NET平台的分层架构实战(四)——实体类的设计与实现

2011-03-26 21:11 1036 查看
实体类是现实实体在计算机中的表示。它贯穿于整个架构,负担着在各层次及模块间传递数据的职责。一般来说,实体类可以分为“贫血实体类”和“充血实体类”,前者仅仅保存实体的属性,而后者还包含一些实体间的关系与逻辑。我们在这个Demo中用的实体类将是“贫血实体类”。

      大多情况下,实体类和数据库中的表(这里指实体表,不包括表示多对多对应的关系表)是一一对应的,但这并不是一个限制,在复杂的数据库设计中,有可能出现一个实体类对应多个表,或者交叉对应的情况。在本文的Demo中,实体类和表是一一对应的,并且实体类中的属性和表中的字段也是对应的。

      在看实体类的代码前,先看一下系统的工程结构。

附件: f3.jpg

      如上图所示,在初始阶段,整个系统包括6个工程,它们的职责是这样的:
      Web——表示层
      Entity——存放实体类
      Factory——存放和依赖注入及IoC相关的类
      IBLL——存放业务逻辑层接口族
      IDAL——存放数据访问层接口族
      Utility——存放各种工具类及辅助类

      这只是一个初期架构,主要是将整个系统搭一个框架,在后续开发中,将会有其他工程被陆陆续续添加进来。

      我们的实体类将放在Entity工程下,这里包括三个文件:AdminInfo.cs,MessageInfo.cs,CommentInfo.cs,分别是管理员实体类、留言实体类和评论实体类。具体代码如下:

AdminInfo.cs:

AdminInfo

1using System;

2

3namespace NGuestBook.Entity

4{

5    /**//// <summary>

6    /// 实体类-管理员

7    /// </summary>

8    [Serializable]

9    public class AdminInfo

10    {

11        private int id;

12        private string name;

13        private string password;

14

15        public int ID

16        {

17            get { return this.id; }

18            set { this.id = value; }

19        }

20

21        public string Name

22        {

23            get { return this.name; }

24            set { this.name = value; }

25        }

26

27        public string Password

28        {

29            get { return this.password; }

30            set { this.password = value; }

31        }

32    }

33}

34

复制代码
MessageInfo.cs:

MessageInfo

1using System;

2

3namespace NGuestBook.Entity

4{

5    /**//// <summary>

6    /// 实体类-留言

7    /// </summary>

8    [Serializable]

9    public class MessageInfo

10    {

11        private int id;

12        private string guestName;

13        private string guestEmail;

14        private string content;

15        private DateTime time;

16        private string reply;

17        private string isPass;

18

19        public int ID

20        {

21            get { return this.id; }

22            set { this.id = value; }

23        }

24

25        public string GuestName

26        {

27            get { return this.guestName; }

28            set { this.guestName = value; }

29        }

30

31        public string GuestEmail

32        {

33            get { return this.guestEmail; }

34            set { this.guestEmail = value; }

35        }

36

37        public string Content

38        {

39            get { return this.content; }

40            set { this.content = value; }

41        }

42

43        public DateTime Time

44        {

45            get { return this.time; }

46            set { this.time = value; }

47        }

48

49        public string Reply

50        {

51            get { return this.reply; }

52            set { this.reply = value; }

53        }

54

55        public string IsPass

56        {

57            get { return this.isPass; }

58            set { this.isPass = value; }

59        }

60    }

61}

62

复制代码
CommentInfo.cs:

CommentInfo

1using System;

2

3namespace NGuestBook.Entity

4{

5    /**//// <summary>

6    /// 实体类-评论

7    /// </summary>

8    [Serializable]

9    public class CommentInfo

10    {

11        private int id;

12        private string content;

13        private DateTime time;

14        private int message;

15

16        public int ID

17        {

18            get { return this.id; }

19            set { this.id = value; }

20        }

21

22        public string Content

23        {

24            get { return this.content; }

25            set { this.content = value; }

26        }

27

28        public DateTime Time

29        {

30            get { return this.time; }

31            set { this.time = value; }

32        }

33

34        public int Message

35        {

36            get { return this.message; }

37            set { this.message = value; }

38        }

39    }

40}

41

复制代码
大家可以看出,实体类的代码很简单,仅仅是负责实体的表示和数据的传递,不包含任何逻辑性内容。下篇将介绍接口的设计。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐