C#/GoF 디자인패턴

[GoF]3.팩토리 메서드 패턴(Factory Method Pattern)

공부를하자 2023. 9. 14. 01:22

1.정의

-생성할 개체의 형태가 정형화 되어 있지 않을 생성할 개체에 대한 구체적인 형태를

 파생 클래스에서 정의하는 패턴.

-뼈대에서 생성할 객체종류를 약속하고 개체 생성 매서드를 정의

-응용을 만들 생성할 객체를 구체적으로 구현.

2.시나리오

-아들은 EHCamera회사에 밤문한 이후 사진에 관심이 많아졌다.

-그리고 디지털 카메라의 많은 부분이 소프트웨어 기술을 사용한다는 것을 알고 프로그래밍에서

  관심이 많아졌다.

-아들과 아버지는 프로그래밍에 대한 것들을 대화하면서 콘솔 응용의 뼈대를 만들었다.

=> 추상 응용 클래스에서 추상 클래스를 만든다.

 -응용 파생 클래스에서 초기화,,해제화를 진행하고 개체를 생성을 약속.

 -초기화에서는 개체를 생성하는 메서드를 호출

 -런에서는 사용자와 인터페이스를 통해 상호작용 

 -해제화는 객체를 삭제

=>용용을 만들 목적에 맞는 객체를 만드는 작업과 파생 클래스에 필요한 부분 정의

3.다이어 그램

  -EHApp추상클래스와 IView 인터페이스는 뼈대를 담당하는 부분이다.

 -EHApp 초기화.,해제 메서드를 가지고 생성 메서드를 약속한다.

 -IView  인터페이스는 보여주기 메서드를 약속한다.

 -MyApp MyView 뼈대를 기반으로 만든 파생클래스이다.

 - MyApp클래스는 MyView 객체를 생성하고 뷰를 생성하는 메서드를 재정의한다.

4.구현

1)EHApp

 -응용프로그램의 뼈대가 되는 추상클래스 .

 -뷰를 생성,운용,초기화 부분을 메서드를 약속한다

2)Iview

- 클래스의 뼈대가 되는 인터페이스.

-뷰는 사용자와 상호작용하는 부분을 약속한다.

3)MyView

-IView 인터페이스에서 상속받아 사용자와 상호작용하는 부분을 구현

4)MyApp

-EHApp에서 상속 받은 실제 응용할 파생클래스

5)테스트

-결과