[디자인 패턴] Factory Pattern(팩토리 패턴) by java, javascript, python

2019. 1. 5. 12:08cs/디자인 패턴

Factory Pattern


[디자인 패턴] - [디자인 패턴] template Pattern(템플릿 패턴) by python, java  이전글(템플릿 패턴을 먼저 보고 읽어주세요.)


지난 시간에 했던 템플릿 패턴을 이용하여 Factory Pattern을 구현해보겠습니다. 이전 글에서 공부한 템플릿 패턴은 추상클래스를 통해 프로그램의 큰틀을 잡아 놓고 하위클래스들을 어떻게 구현하나에 따라서 각기 다르게 실행되게 하는 템플릿 패턴을 만들어 보았습니다. 


여기서 팩토리 패턴은 구체화 된 클래스의 객체를 만들 때 서브클래스에서 만들게 하는 방법입니다. 그래서 이름 그대로 객체를 만드는 공장이라고 하여서 Factory Pattern으로 불린답니다.


결론적으로 객체의 생성을 subClass에 맡김으로써 클래스의 결합도를 낮추어주는 효과를 위해서 사용합니다. 


여기서 결합도란 각각의 클래스들와 객체들의 결합이 깊게 되어있냐 얕게 되어있냐 그런 의미인데요.


결합도가 클 경우 


하나의 클래스에서 오류가 나면 연관되어 있는 클래스를 모두 손봐야하는 상황이 발생할 수 있다. 

코드를 이해하기 위해서 이전의 클래스를 모두 이해할 필요가 있을 수도 있다. 


결합도가 낮을 때 


하나의 클래스가 오류가 났을 때는 그 클래스는 고치면 되고 코드를 이해하기 위해선 이전의 클래스까지 신경 쓸 필요가 없어진다.


나중에 자세히 설명하고 


코드를 통해 설명해보겠다. 


그리고 다른 예제 글들을 찾아보니 switch로 나누어서 factory에서 객체를 만드는 예제가 있는데 여기서 그렇게 사용하고 싶다면 tv클래스를 LgTv, SamsungTv클래스와 같이 나누어서 switch문을 사용해주면 됩니다.