分享 - 小問(wèn)題大道理
1 public class Order {
2
3 private String name;
4 //
5 private Set<OrderLine> orderLines = new HashSet<OrderLine>();
6
7 public String getName() {
8 return name;
9 }
10
11 public void setName(String name) {
12 this.name = name;
13 }
14
15 /**
16 * 因?yàn)檫@是一個(gè)domain對(duì)象,貫穿你整個(gè)項(xiàng)目,不知你是否在意過(guò)這樣的設(shè)計(jì)。
17 * 這樣的設(shè)計(jì)對(duì)你是否有用呢?
18 * 用戶:表示API調(diào)用者。
19 */
20
21 public Set<OrderLine> getOrderLines() {
22 /*
23 * 1.防止用戶任意修改訂單行的內(nèi)容,強(qiáng)制要求用戶使用當(dāng)前類提供的API修改訂單行
24 * 2.getOrderLines()絕對(duì)不為null,有可能getOrderLines().isEmpty()為true
25 * 用在你的程序中不會(huì)出現(xiàn)if(getOrderLines() == null && getOrderLines().isEmpty()),
26 * 只會(huì)出現(xiàn)if(getOrderLines().isEmpty())
27 */
28 return Collections.unmodifiableSet(orderLines);
29 }
30
31 //-----------------------提供API修改Order by OrderLine----------------------------//
32 public void addOrderLine(OrderLine orderLine) {
33 //
34 orderLines.add(orderLine);
35 }
36
37 public void removeOrderLine(OrderLine orderLine) {
38 //
39 }
40 //-----------------------提供API修改Order by OrderLine----------------------------//
41
42 public void setOrderLines(Set<OrderLine> orderLines) {
43 // this.orderLines = orderLines;
44 // 為什么沒(méi)有向上面來(lái)做,是因?yàn)槿绻沁@樣賦值的話那么兩個(gè)對(duì)象就是同一個(gè)引用了。
45 // 用戶修改orderLines,this.orderLines也同樣會(huì)被修改。
46 // 而提供這個(gè)類期望用戶通過(guò)該類提供的接口來(lái)修改orderLines。
47 orderLines.addAll(orderLines);
48 }
49
50 }
2
3 private String name;
4 //
5 private Set<OrderLine> orderLines = new HashSet<OrderLine>();
6
7 public String getName() {
8 return name;
9 }
10
11 public void setName(String name) {
12 this.name = name;
13 }
14
15 /**
16 * 因?yàn)檫@是一個(gè)domain對(duì)象,貫穿你整個(gè)項(xiàng)目,不知你是否在意過(guò)這樣的設(shè)計(jì)。
17 * 這樣的設(shè)計(jì)對(duì)你是否有用呢?
18 * 用戶:表示API調(diào)用者。
19 */
20
21 public Set<OrderLine> getOrderLines() {
22 /*
23 * 1.防止用戶任意修改訂單行的內(nèi)容,強(qiáng)制要求用戶使用當(dāng)前類提供的API修改訂單行
24 * 2.getOrderLines()絕對(duì)不為null,有可能getOrderLines().isEmpty()為true
25 * 用在你的程序中不會(huì)出現(xiàn)if(getOrderLines() == null && getOrderLines().isEmpty()),
26 * 只會(huì)出現(xiàn)if(getOrderLines().isEmpty())
27 */
28 return Collections.unmodifiableSet(orderLines);
29 }
30
31 //-----------------------提供API修改Order by OrderLine----------------------------//
32 public void addOrderLine(OrderLine orderLine) {
33 //
34 orderLines.add(orderLine);
35 }
36
37 public void removeOrderLine(OrderLine orderLine) {
38 //

39 }
40 //-----------------------提供API修改Order by OrderLine----------------------------//
41
42 public void setOrderLines(Set<OrderLine> orderLines) {
43 // this.orderLines = orderLines;
44 // 為什么沒(méi)有向上面來(lái)做,是因?yàn)槿绻沁@樣賦值的話那么兩個(gè)對(duì)象就是同一個(gè)引用了。
45 // 用戶修改orderLines,this.orderLines也同樣會(huì)被修改。
46 // 而提供這個(gè)類期望用戶通過(guò)該類提供的接口來(lái)修改orderLines。
47 orderLines.addAll(orderLines);
48 }
49
50 }
posted on 2011-09-20 12:45 目繪藝術(shù)2 閱讀(184) 評(píng)論(0) 編輯 收藏 所屬分類: Java基礎(chǔ)