原型模式

在已有对象基础上构建

场景


不从头构造,直接再已有对象基础上复制

  • 对象完全构造比较复杂耗时
  • 需要很多个别参数不同的对象

代码


Sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class BookList {
private List<String> books;

public Book(){
this.books = new ArrayList<>();
}

public Book(List<String> books) {
this.books = books;
}

public void add(String book) {
this.books.add(book);
}

public BookList clone() {
List<Stirng> tmp = new ArrayList<>();
for(String b : books) {
tmp.add(b);
}
return new BookList(tmp);
}
}

调用

Sample
1
2
3
4
BookList oldList = new BookList();
oldList.add("book1");
oldList.add("book2");
BookList newList = oldList.clone();

应用


java.lang.Object的clone方法