[python] 프로토타입 디자인 패턴

프로토타입 디자인 패턴은 객체를 생성하는 방식 중 하나로, 이미 존재하는 객체를 복사하여 새로운 객체를 생성하는 방법입니다. 이 패턴은 객체 생성 과정의 복잡성을 줄이고, 유사한 객체를 쉽게 생성할 수 있는 장점이 있습니다.

패턴의 구성요소

프로토타입 디자인 패턴은 다음과 같은 구성 요소로 이루어져 있습니다.

  1. Prototype(프로토타입): 새로운 객체를 생성하기 위해 복사되는 기존 객체를 나타냅니다.
  2. ConcretePrototype(구체적인 프로토타입): Prototype을 구체화한 클래스로, 실제로 복사되어 새로운 객체를 생성합니다.
  3. 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 함수에서는 실제로 객체를 생성하고, 복사된 객체들을 출력하는 예제입니다.

참고 자료