상위문서: GoF 디자인 패턴
미리 만들어진 개체를 복사하여 개체를 생성하는 패턴(clone)
다수의 객체 생성시에 발생되는 객체 생성 비용을 효과적으로 줄일 수 있다.
원칙은 '런타임'에 또 다른 '객체'를 생성한다는 것이다. 다시 말해 '실제 복사본'(deep copy)이 만들어지는 것이다.
public class ItemInfo extends Cloneable{
String name;
String category;
int price;
public ItemInfo(name, category, price){
this.name = name;
this.category = category;
this.price = price;
}
@Override
public ItemInfo clone(){
ItemInfo cloneItemInfo = (ItemInfo)super.clone();
}
ItemInfo item = new ItemInfo("candy", "food", 1000);
ItemInfo aStoreItem = item.clone();
aStoreItem.setPrice(2000);
ItemInfo bStoreItem = item.clone();
bStoreItem.setPrice(3000);