實體類

實體類

實體類主要是作為數據管理和業務邏輯處理層面上存在的類別;它們主要在分析階段區分實體類的主要職責是存儲和管理系統內部的信息,它也可以有行為,甚至很複雜的行為,但這些行為必須與它所代表的實體對象密切相關。實體類只應和其他實體類之間存在關聯關係。· 發現一種新的行為後,檢查現有的類中是否具有類似的職責。· 確定類之後,對類進行檢查,以確保它們的職責是一致的。· 如果某個類由於職責互不相關而被劃分,則檢查這個類所參與的協作,判斷協作是否也需要更新。

實體類限制

實體類只應和其他實體類之間存在關聯關係。實體類對象的生存期一般都很長;而控制類對象和邊界類對象的生存期則很短。正是由於這些類的生存期相差如此之大,所以在這些類之間建立關聯關係是不可取的。

實體類 實體類

推薦使用的不同類構造型之間的關聯關係。

*用“訂閱”關聯關係取而代之,在這種關聯關係中控制類訂閱實體類對象中的某些特定事件。

推行一致性

· 發現一種新的行為後,檢查現有的類中是否具有類似的職責。只要可能,就復用現有的類。只有在缺乏可執行該新行為的現有對象時,才創建新類。

· 確定類之後,對類進行檢查,以確保它們的職責是一致的。如果某個類的職責互不相關,則將該對象分為兩個或者多個類。還應對協作圖進行相應的更新。

· 如果某個類由於職責互不相關而被劃分,則檢查這個類所參與的協作,判斷協作是否也需要更新。如果必要,可更新此協作。

· 只有一項職責的類不存在什麼問題,但它存在的必要性本身就值得懷疑。時刻準備對所有類的存在提出質疑並進行驗證。

代碼

7、

AdminInfo.cs:

AdminInfo

1using System;

2

3namespace NGuestBook.Entity

4{

5 /**////

6 /// 實體類-管理員

7 ///

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 /**////

6 /// 實體類-留言

7 ///

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 /**////

6 /// 實體類-評論

7 ///

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

大家可以看出,實體類的代碼很簡單,僅僅是負責實體的表示和數據的傳遞,不包含任何邏輯性內容。

相關搜尋

熱門詞條

聯絡我們