파이썬 디자인 패턴 - 생성디자인패턴 - 프로토타입 패턴
15 Aug 2018 | python designpattern 생성디자인패턴
1-4.프로토타입 패턴
- 프로토타입 패턴은 원래 객체를 복제한 새로운 객체를 만들고, 그 복제본을 변경해 사용하는 패턴이다
- 일단! 파이썬에서의 새로운 객체를 생성하는 방법을 살펴보자
- 위의
Point
class가 있을 경우 새로운 객체를 만드는 방법은 7가지가 있다.
Point
클래스 객체를 생성자를 활용해 생성 (정적생성)
eval()
을 사용해 클래스 이름을 매개변수로 전달 (동적생성)
gettattr()
을 사용해 클래스 이름을 매개변수로 전달 (동적생성)
globals()
을 사용해 클래스 이름을 매개변수로 전달 (동적생성) - point3 과 동일한 방식
point5
는 클래스 객체와 필요한 인자를 받는 제네릭 함수를 통해 생성
- 고전적인 프로토타입 접근법을 생성
- 먼저
copy.deepcopy()
를 사용해 기존 객체를 복제
- 복제된 객체를 초기화하거나 애트리뷰트를 재설정
- 파이썬은 어떤 객체의 클래스 객체 (
__class__
)에 접근할 수 있다
- 기존 객체를 복제한 다음 복제본을 수정하는 대신
- 클래스 객체를 활용해 바로 새로운 객체를 만들 수 있다.
1-4.프로토타입 패턴
- 프로토타입 패턴은 원래 객체를 복제한 새로운 객체를 만들고, 그 복제본을 변경해 사용하는 패턴이다
- 일단! 파이썬에서의 새로운 객체를 생성하는 방법을 살펴보자
- 위의
Point
class가 있을 경우 새로운 객체를 만드는 방법은 7가지가 있다.Point
클래스 객체를 생성자를 활용해 생성 (정적생성)eval()
을 사용해 클래스 이름을 매개변수로 전달 (동적생성)gettattr()
을 사용해 클래스 이름을 매개변수로 전달 (동적생성)globals()
을 사용해 클래스 이름을 매개변수로 전달 (동적생성) - point3 과 동일한 방식point5
는 클래스 객체와 필요한 인자를 받는 제네릭 함수를 통해 생성- 고전적인 프로토타입 접근법을 생성
- 먼저
copy.deepcopy()
를 사용해 기존 객체를 복제 - 복제된 객체를 초기화하거나 애트리뷰트를 재설정
- 먼저
- 파이썬은 어떤 객체의 클래스 객체 (
__class__
)에 접근할 수 있다- 기존 객체를 복제한 다음 복제본을 수정하는 대신
- 클래스 객체를 활용해 바로 새로운 객체를 만들 수 있다.
Comments