BlogJava
首页
新随笔
联系
聚合
管理
数据加载中……
分享 - 小问题大道理
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
* 因为这是一个domain对象,贯穿你整个项目,不知你是否在意过这样的设计。
17
* 这样的设计对你是否有用呢?
18
* 用户:表示API调用者。
19
*/
20
21
public
Set
<
OrderLine
>
getOrderLines() {
22
/*
23
* 1.防止用户任意修改订单行的内容,强制要求用户使用当前类提供的API修改订单行
24
* 2.getOrderLines()绝对不为null,有可能getOrderLines().isEmpty()为true
25
* 用在你的程序中不会出现if(getOrderLines() == null && getOrderLines().isEmpty()),
26
* 只会出现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
//
为什么没有向上面来做,是因为如果是这样赋值的话那么两个对象就是同一个引用了。
45
//
用户修改orderLines,this.orderLines也同样会被修改。
46
//
而提供这个类期望用户通过该类提供的接口来修改orderLines。
47
orderLines.addAll(orderLines);
48
}
49
50
}
posted on 2011-09-20 12:45
目绘艺术2
阅读(144)
评论(0)
编辑
收藏
所属分类:
Java基础
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
分享 - 小问题大道理
jdoc2chm (Javadoc转CHM帮助文档工具)
<
2011年9月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
统计
随笔 - 3
文章 - 6
评论 - 0
引用 - 0
常用链接
我的随笔
我的评论
我的参与
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
Hibernate
(rss)
HTML/XML/JavaScript
(rss)
Java基础(2)
(rss)
Java数据结构与算法
(rss)
Lucene
(rss)
Maven
(rss)
Oracle
(rss)
Spring
(rss)
Struts2
(rss)
TCP/IP
(rss)
UML
(rss)
经历
(rss)
设计模式
(rss)
随笔档案
2011年9月 (1)
2011年7月 (1)
2011年2月 (2)
文章分类
Hibernate
(rss)
HTML/JavaScript
(rss)
Java基础
(rss)
Java数据结构与算法
(rss)
Linux/Unix
(rss)
Lucene
(rss)
Maven
(rss)
Oracle
(rss)
Spring
(rss)
Struts2
(rss)
TCP/IP
(rss)
UML
(rss)
业余(1)
(rss)
设计模式
(rss)
文章档案
2011年9月 (1)
2011年2月 (1)
搜索
最新评论
阅读排行榜
1. Linux下Oracle重启和修改连接数(911)
2. jdoc2chm (Javadoc转CHM帮助文档工具)(503)
3. linux_vi_命令(172)
4. 分享 - 小问题大道理(144)
评论排行榜
1. 分享 - 小问题大道理(0)
2. jdoc2chm (Javadoc转CHM帮助文档工具)(0)
3. linux_vi_命令(0)
4. Linux下Oracle重启和修改连接数(0)