본문 바로가기

디자인 패턴2

프로토타입 (Prototype) 패턴 정의 기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법 자신을 복제 (clone) 프로토타입 패턴을 사용하는 이유 기존 객체를 응용해서 새로운 객체를 만들때 예를 들어, 데이터베이스에서 데이터를 읽어와서 인스턴스를 생성하거나 네트워크를 거쳐서 http 요청을 보내서 가져온 데이터 기반으로 인스턴스를 만드는 경우 ⇒ 인스턴스를 만들때마다 오래걸리고, 자원도 많이 사용하게 되는 경우 java의 clone 메소드를 알아보자. 기본적으로 java에서 지원하는 clone 메소드는 ‘얕은 복사 (shallow copy)’ 를 지원함. 얕은 복사 (shallow copy) 란 ? 주소 값을 복사함. 깊은 복사 (deep copy) 란 ? 실제 값을 새로운 메모리 공간에 복사함. 장점 복잡한 객체 생성 과정을 c.. 2022. 5. 22.
메멘토 (Memento) 패턴 정의 ? 캡슐화를 유지하면서 객체 내부 상태를 외부에 저장하는 방법. Originator : 원래의 데이터를 가진 객체. CareTaker : Originator의 내부정보를 Memento라는 타입으로 가지고 와서 저장하고 있음. Memento : Originator 객체의 추상화 객체. 따라서 Originator는 두 가지의 operation을 제공해야함. createMemento() : 내부정보를 Memento 클래스로 추상화해서 전달함. restore(Memento) : 외부에서 전달받은 Memento 정보로 자신의 정보를 복원함. 또한, Memento 는 변경불가능한 객체로 구성하여 Originator의 정보를 CareTaker에 전달함. 예제 /* Memento.class * 객체의 값이 변경되.. 2022. 5. 22.