본문 바로가기

객체지향 디자인 패턴

생성패턴


Simple Factory패턴(=객체생성클래스+느슨한has-a)은 언제 쓰이나? 생성 부분을 추상화한 전략 패턴이 필요할때 

Simple Factory패턴(Static Facotry pattern)의 형식은 어떻게 되나? 객체 생성 클래스+느슨한has-a

 

 

매우중요!!!!

 

DIP(Dependency Inversion Principle,구체적 클래스에 의존하지 않고 그 클래스의 메서드를 사용)을  확보하는 2가지방법

1.느슨한 has-a+DI    2.상속

 

Simple factory Pattern 은 방법1을 사용하고factory method pattern은 방법2를 사용함.

 

Simple factory pattern(객체 생성 클래스+느슨한has-a)

 

Simple factory Pattern는 객체생성 메서드를 분리하여 다른 클래스에 정의하고 원래의 클래스에는 최고조상혹은 인터페이스 타입의 멤버변수를  두어  그 객체생성메서드가 있는 클래스를 전략패턴 처럼 사용하는 것입니다. 즉 Simple factory pattern은 느슨한has-a와 관계주입(DI)을 사용합니다!!



Factory Method pattern(객체 생성 클래스의상속+final)

 

Factory method pattern은 final메서드를 사용하여 자식에서 자신을 상속하더라도 전체적인 메서드의 골격을 수정하는 것을 막는다. 그리고 자식클래스에서 객체생성 메서드(createPizza)를 구현한다. 즉 이런 상속의 구조를 이용함으로써 DIP(구체적 클래스에 의존하지 않고 그 클래스의 메서드를 사용)을 확보하는 것이다.

 

 

Abstract Factory pattern은 언제 쓰이나? 일관성있고 서로 연관된 여러종류의 객체를 생성해주는 인터페이스를 제공해 줄때 사용

 

재료의 일관성을 보장해주는 방법으로 Abstract Factory pattern을 생각해 볼수 있습니다. 

한클래스가 여러종류의 객체에 의존하게 되는데 왜 이렇게 설계해?A의 Dough를 쓰면 A 의Cheese를 쓰게 하기 위해! 즉, 사용되는 객체들의 일관성을 유지하기 위해서 Abstract Factory pattern을 사용함.