관리 메뉴

caLAB

[개발] 쉽게 배워 바로 써먹는 디자인 패턴 02 - 팩토리 메서드 패턴(Factory Method Pattern), 싱글톤(Singleton) 패턴 본문

개발 공부/컴퓨터 과학

[개발] 쉽게 배워 바로 써먹는 디자인 패턴 02 - 팩토리 메서드 패턴(Factory Method Pattern), 싱글톤(Singleton) 패턴

도이(doi) 2022. 4. 14. 18:41
728x90

팩토리 메서드 패턴

팩토리 패턴에 추가 기능을 구현하는데 팩토리 메서드 패턴을 사용할 수 있다.

각 각의 다른 기능이 있는 팩토리에서 객체를 만듦. 그리고 각 각 다른 팩토리를 관리하는 인터페이스로써의 팩토리가 존재한다. 객체 생성 파트가 상속되어 있으면 팩토리 메서드 패턴을 사용했다고 생각하면 됨. 

 

구조화를 통해 선언부와 실현 구현부를 분리. 팩토리 메서드는 프레임 워크와 같은 응용 프로그램에서 많이 이용하는 패턴 중 하나. 팩토리 메서드 패턴을 이용하면 응용 프로그램에 클래스가 종속되지 않도록 관리할 수 있음. 그 이유는 객체의 생성 과정을 캡슐화 하고 이를 분리하여 관리할 수 있기 때문. 

팩토리 메서드 패턴의 구조
동물 생성 코드(좌) / 팩토리 클래스를 상속한 팩토리(우)
각 각 팩토리에 추가한 코드 사용

추상화 팩토리 패턴

Matrix 관계(표)를 가진 class 오브젝트를 생성할 때 유리함. 

각 각의 테마를 가진 여러가지 오브젝트들을 하나의 팩토리에서 만들고자 할 때

이러한 오브젝트들을 만들어내는 팩토리 자체를 추상화 함으로써 오브젝트를 쉽게 생성

 

추상 팩토리 패턴은 팩토리 메서드 패턴을 포함하며 팩토리 부분을 추상화해 그룹으로 확장. 

생성된 그룹을 통해 전체를 쉽게 변경 가능. 

 

추상 팩토리는 객체 생성 과정이 프로세스 공정과 유사. 같은 방식으로 생성할 때 적용하면 좋음. 

 

팩토리 method pattern과의 차이점

팩토리 method pattern은 일반적인 class 정의안에 상속이 가능한 factory method만 추가시킨것이라고 생각하시면됩니다. abstract factory pattern은 factory 의 목적을 가진 class를 추상화 시킨것이구요. 디자인패턴이 그러하듯이 이것들을 명확히 나누는 것은 의미가 없습니다. 이러한 디자인 패턴이 있구나 정도만 기억하시다가, 필요한 요구사항에 맞춰서 적절히 섞어서 써도 상관없습니다.

 

팩토리 메서드와 유사하지만 관리할 그룹이 많다는 차이가 있음.

matrix 관계
추상 팩토리 패턴 구조
기능의 추상화와 구현

추상 팩토리 구조 코드

1. 팩토리 인터페이스 - 버튼, 체크박스, 스크롤바 포함
2. UIFactory를 상속 받은 DarkUIFactory 안에 실제 오브젝트를 만들어서 return하는 함수 만듦
3. 클라이언트는 DarkUIFactory를 생성하고 각 각 객체 생성
4. 각 각 객체의 함수 사용

 

[참고 영상]

https://www.youtube.com/watch?v=ejXUhFKcbIU&list=PLDV-cCQnUlIYcAmW4j27i8aYPbja9HePm&index=4 

https://www.youtube.com/watch?v=XTgCYtQAQ4c&list=PLDV-cCQnUlIYcAmW4j27i8aYPbja9HePm&index=4 

 

728x90
반응형
Comments