728x90
/* 프로토타입 패턴 (Prototype Pattern) */
객체가 있고 그 객체의 정확한 복사본이 필요한다면 우리는 새 객체를 생성하고 기존 객체의 모든 필드 값을 새 객체에 넣을 것이다. 이러면 문제가 없지만 기존 객체의 필드를 외부에서 볼 수 없는 경우가 발생한다.
또한, 객체의 복제본을 생성하려면 객체의 클래스를 알아야 하므로, 해당 클래스에 의존하게 된다.
이러한 문제점들을 막기 위해 프로토타입 패턴을 이용한다.
프로토타입 패턴은 clone 메서드를 사용한다.
/* 프로토타입 객체 생성 */
방법은 여러가지가 될 수 있다. 나는 프로토타입 인터페이스 정의를 통해 구현을 하겠다
// 프로토타입 인터페이스
interface Prototype {
Prototype clone();
}
// 구체적 프로토타입 클래스
class ConcretePrototype implements Prototype {
private String field;
public ConcretePrototype(String field){
this.field = field;
}
@Override
public Prototype clone(){
return new ConcretePrototype(this.field);
}
}
// 클라이언트 코드
public class Client{
public static void main(String[] args){
// 기존 객체
Prototype original = new ConcretePrototype("original");
// 복제 객체
Prototype clone = original.clone();
}
}
728x90
'아키텍처' 카테고리의 다른 글
[디자인 패턴] 싱글톤 패턴 (Singleton Pattern) (2) | 2024.03.28 |
---|---|
[아키텍처] SOLID 원칙 (0) | 2024.02.09 |