DevBoi

[Java] 팩토리 디자인 패턴 본문

Language/[Java]

[Java] 팩토리 디자인 패턴

HiSmith 2022. 3. 30. 14:06
반응형

 

팩토리 패턴 : 간접적으로 객체를 생성해준 후에 반환해주는 역할이다.

 

* 장점

생성할 클래스를 미리 알지 못해도 팩토리 클래스가 객체 생성 담당한다.

객체의 자료형이 하위클래스에 의해서 결정 -> 확장 용이성

동일한 형태로 프로그래밍 가능

확장성 있는 전체 프로젝트 구성가능

 

* 단점

객체가 늘어날때 마다 하위클래스 재정의로 인한 불필요한 많은 클래스 생성 가능

 

 

 

쉽게 말하면 하나의 인터페이스를 여러 클래스가 상속 받는 다고 가정하자

shape interface를 여러 객체가 상속을 받는다면

해당 클래스로 하게되면 하나의 호출로, 여러개의 객체 호출을 할수 있다.

 

 

관련 클래스 다이어 그램이다.

하나의 인터페이스를 여러개의 클래스에서 받아서 객체생성은 팩토리에서 전담 하는 것이다.

 

 

마무리

장점 

* 객체 생성하는 부분의 코드를 캡슐화 한다. -> 클라이언트 코드와 결합도를 낮춘다.

 = 객체 추가 /수정이 일어나도라도 객체를 생성하는 코드만 건들이면된다.

(직사각형A -> 직사각형B로 변경이 필요하다면 객체생성하는 부분 코드만 변경하면 된다.)

* 인터페이스를 바탕으로 유연성과 확장성이 뛰어난 코드 제작이 가능하다.

 = 인터페이스는 다 같은 인터페이스를 바라보기 때문에 코드가 유연하게 된다.

 

단점 

* 생성클래스가 별도로 분리되어, 사용 클래스의 수가 증가하게 된다. (생성 클래스 +1)

반응형

'Language > [Java]' 카테고리의 다른 글

[Java] Stream  (0) 2022.04.01
[Java] 옵저버 패턴  (0) 2022.03.30
[Java] lombok의 setter/getter 메소드 생성 시점문의  (0) 2022.03.30
[Java] Enum 클래스  (0) 2022.03.29
[Java] singleTon 디자인 패턴  (0) 2022.03.29