반응형
- 팩터리 패턴이란?
다른 객체를 생성하기 위한 클래스를 의미.
팩토리 메소드는 객체 생성을 위한 인터페이스를 정의 하지만 어떤 클래스를 인스턴스화 할지는 인터페이스를 구현하는 클래스에서 결정.
팩토리 메소드는 코드를 실제 클래스가 아닌 인터페이스에 묶어 좀 더 보편적으로 사용할 수 있게 만든다.
추상 팩터리는 실제 클래스를 명시하지 않은 상태로 관련 있는 가족이나 의존된 객체를 생성하는 인터페이스를 제공.
- 팩토리를 사용해야 하는 이유
팩토리는 객체 생성과 클래스 구현을 구별해서 의존성을 낮춘다.
생성된 객체를 사용하는 클래스는 정확히 어떤 클래스에서 객체를 생성했는지 알 필요 없음.
생성된 클래스의 인터페이스인 어떤 속성으로 어떤 생성 클래스의 메소드를 호출 할 수 있는지만 알면 된다.
새로운 클래스가 인터페이스에 부합하기만 하면 클라이언트 코드를 정하지 않고 팩토리에서 새로운 클래스를 추가 할 수 있다.
팩토리 클래스는 기존 객체를 재사용할 수 있지만, 직접 인스턴스화 하기는 언제나 새로운 객체를 생성한다.
client 클래스는 creat_product 메소드를 가지고 있는 Factory 클래스를 사용.
client 클래스는 이 메소드에 타입을 전달하고 이 타입에 따라 Factory 클래스는 Pro1 이나 product2 를 반환
팩토리는 그 자체로 디자인 패턴이 아니라 , 팩토리 메소드, 추상 팩토리 등 몇몇 디자인 패턴의 기반이 되는 컨셉이다.
출처 : 파이썬 디자인 패턴
반응형