[python] 프로토타입 디자인 패턴
프로토타입 디자인 패턴은 객체를 생성하는 방식 중 하나로, 이미 존재하는 객체를 복사하여 새로운 객체를 생성하는 방법입니다. 이 패턴은 객체 생성 과정의 복잡성을 줄이고, 유사한 객체를 쉽게 생성할 수 있는 장점이 있습니다.
패턴의 구성요소
프로토타입 디자인 패턴은 다음과 같은 구성 요소로 이루어져 있습니다.
- Prototype(프로토타입): 새로운 객체를 생성하기 위해 복사되는 기존 객체를 나타냅니다.
- ConcretePrototype(구체적인 프로토타입): Prototype을 구체화한 클래스로, 실제로 복사되어 새로운 객체를 생성합니다.
- Client(클라이언트): 새로운 객체를 생성하기 위해 ConcretePrototype을 사용하는 역할을 합니다.
예제
다음은 파이썬에서 프로토타입 디자인 패턴을 구현한 간단한 예제입니다.
import copy
class Prototype:
def __init__(self):
self.name = "Prototype"
def clone(self):
return copy.deepcopy(self)
class ConcretePrototype(Prototype):
def __init__(self):
super().__init__()
self.name = "Concrete Prototype"
def display(self):
print(f"Name: {self.name}")
if __name__ == "__main__":
prototype = ConcretePrototype()
clone_one = prototype.clone()
clone_two = prototype.clone()
clone_one.display()
clone_two.display()
위 예제에서는 Prototype
클래스와 ConcretePrototype
클래스를 구현하고, clone
메서드를 통해 복사된 객체를 반환합니다. ConcretePrototype
클래스는 display
메서드를 통해 객체의 이름을 출력합니다.
main
함수에서는 실제로 객체를 생성하고, 복사된 객체들을 출력하는 예제입니다.