반응형

[Design Pattern] Static Factory Method

반응형


Static Factory Method 패턴은 객체를 생성 시, 생성자를 통해 객체를 생성하는 것이 아닌, 프로그래머가 명시한 static method를 통해 객체를 생성하는 디자인 패턴입니다.


먼저 이 패턴을 적용할 시 얻는 이점에 대해서 먼저 이야기 하고, 각각의 항목에 대하여 설명하도록 하겠습니다.


1. 의미있는 메소드 명을 명시함에 따라 가독성이 좋아진다.

2. 중복 Signature Constructor의 형태가 가능해진다.

3. 필요에 따라서, Singleton pattern을 통해 미리 생성된 객체를 반환하여 오버헤드를 줄인다.

4. 반환하는 타입의 sub-type도 반환이 가능하다.


1. 의미있는 메소드 명을 명시함에 따라 가독성이 좋아진다

객체를 생성하는 일반적인 방법은 다음과 같이 생성자를 통해 객체를 생성하는 것입니다. 그러나 다른 의미를 가지는 객체를 생성할 시에도 인수만 다를 뿐, 같은 명칭을 공유하는 생성자를 통해 객체를 만드는 것은 동일합니다.

 

그러나 Static Method 패턴을 이용하면 의미있는 메소드 명을 명시함에 따라서 객체가 왜 생성되는 지를 쉽게 파악할 수 있게 되어 가독성이 좋아지는 효과를 볼 수 있습니다. 


2. 중복 Signature Constructor의 형태가 가능해진다.


원래는 타입의 인수와 인수의 숫자를 가지는 메소드를 생성하기는 불가능합니다. 생성자도 마찬가지죠. 하지만 Static Method패턴을 이용하면 이러한 문제를 쉽게 해결할 수 있습니다.


3. 필요에 따라서, Singleton Pattern을 통해 미리 생성된 객체를 반환하여 오버헤드를 줄인다.


필요에 따라서, Singleton Pattern을 적용하여 객체 생성 시 소요되는 오버헤드를 줄일 수 있는 이점을 가지게 됩니다. 


4. 반환하는 타입의 Subclass, Subtype도 반환이 가능하다.


다음 예시와 같이, 해당 클래스의 인스턴스만 반환하는 것이 아닌 그 클래스의 서브클래스, 해당 인터페이스의 서브타입을 반환하여 유연한 코드를 만들 수 있게 해줍니다.





반응형

이 글을 공유하기

댓글

Designed by JB FACTORY