1. 程式人生 > >8.11 Encapsulate Collection 封裝集合

8.11 Encapsulate Collection 封裝集合

讓方法返回集合的一個只讀物件,並在集合所在類中新增對應 add/remove 元素的方法

更多精彩

動機

  1. 物件類中有一個方法返回一個可直接操作的集合
  2. 集合的取值方法不應該返回集合自身,這會讓呼叫者可以直接修改集合
  3. 物件中的集合不應該有一個可以直接設定的 setter 方法,而應該提供對應 add/remove 元素的方法

案例

public getCourses() {
	return courses;
}

public setCourses(List courses) {
	this.courses = courses;
}
public getCourses() {
	return
courses; } public void addCourse(Course course) { this.courses.add(course); } public void removeCourse(Course course) { this.courses.remove(course); }