사다리 미션에서 팩토리 패턴의 사용

LadderFactory를 사용했기 때문에 Ladder를 생성해주는 코드가 불필요하게 늘어난다는 것을 리뷰를 통해 알게 되었다. 리팩토링을 진행하며 LadderFactory 없이 new 생성자를 이용해 Ladder를 생성했더니 코드가 두 줄 정도 줄어들게 되었다. 알고 있던 팩토리 패턴의 사용법이 잘못되었다는 것을 인지하게 되었고, 팩토리 패턴의 정의, 활용성에 대해 공부하였다.

Ladder 미션에서 Ladder를 생성하는 로직은 LadderGame의 책임이 아니라고 생각해 LadderFactory를 통해 캡슐화하였다. Ladder를 생성하기 위해서는 Point 리스트를 생성해야 하고, Point 리스트를 Line 객체로 감싸야 하며, Line들의 리스트를 만들어 Ladder 객체로 감싸야 한다. 객체를 포장하는 책임은 LadderGame이 맡기에 불필요한 책임이라고 생각했다.

따라서 LadderFactory를 만들어 각 원시값을 객체로 포장하는 일을 맡도록 역할을 분리해주었다.

팩토리 패턴이란?

Simple 팩토리 패턴

팩토리 메서드 패턴

예시

Phone

public interface Phone {

    void call();

}

iPhone