팩토리 메소드 패턴은 객체 생성을 처리하기 위한 디자인 패턴 중 하나이다. 이 패턴을 사용하면 객체를 생성하는 일을 하위 클래스에서 처리할 수 있으며, 이를 통해 추상화된 인터페이스를 사용하여 객체를 생성하는 코드의 유연성을 높일 수 있다.
팩토리 메소드 패턴은 일반적으로 Creator(생성자) 클래스와 ConcreteCreator(구체적 생성자) 클래스로 구성된다. Creator 클래스는 객체를 생성하는 추상 메소드를 정의하고, ConcreteCreator 클래스는 이 추상 메소드를 구현하여 실제 객체를 생성한다.
from abc import ABC, abstractmethod
# Product
class Page(ABC):
@abstractmethod
def get_title(self):
pass
# Concrete Product
class LoginPage(Page):
def get_title(self):
print("LoginPage의 타이틀입니다.")
def enter_id(self):
print("ID를 입력합니다.")
# Concrete Product
class SigninPage(Page):
def get_title(self):
print("SigninPage의 타이틀입니다.")
def enter_pw(self):
print("PW를 입력합니다.")
# Creator
class PageFactory(ABC):
@abstractmethod
def create_page(self):
pass
# Concreate Creator
class LoginPageFactory(PageFactory):
def create_page(self):
return LoginPage()
# Concreate Creator
class SigninPageFactory(PageFactory):
def create_page(self):
return SigninPage()
login_page = LoginPageFactory().create_page()
login_page.get_title()
signin_page = SigninPageFactory().create_page()
signin_page.get_title()