회고

20220803 #Factory

paran21 2022. 8. 7. 20:58

휴가가 끝나고 돌아오니, 새로운 리펙토링이 있었다.

 

휴가를 가기 전에 전략패턴을 사용하면서 type에 맞는 구현체를 찾아올 때 어떤 방법이 좋을지 고민이 있었다.

 

컨트롤러에서 해당 구현체를 List로 주입하고 type을 비교하는 메서드를 하나 만들어서 해당 구현체를 넣어주었는데, 구현체를 찾기 위한 목적의 메서드를 하나 만든다는 것에서 좋은 방법은 아닌 것 같았다.

팩토리를 사용하자는 의견이 있었는데, 며칠 자리를 비운 사이에 리팩토링이 되어 있었다.

 

컨트롤러에서는 Factory에 있는 메서드를 사용하고,

Factory에서는 switch문을 사용해서 type에 따라 알맞은 구현체의 해당 메서드가 실행되도록 하였다.

Factory가 너무 지저분해지지 않을까, 하는 걱정도 있었는데 구현해놓고 보니 오히려 가독성도 더 좋아진 것 같았다.

 

이 Factory 클래스의 네이밍도 고민했는데 Factory를 사용하는게 오히려 어떤 패턴이 사용되는지 알 수 있어서 더 가독성이 좋을 거 같다는 의견이 많아서 그냥 ~Factory로 하였다.

 

컨트롤러에서 굳이 Factory를 쓰는걸 알 필요가 있나? 라는 생각도 했는데

이 Factory 클래스를 볼 때는 Factory가 네임에 들어가는게 훨씬 더 좋은 것 같다.

 

전략패턴과 관련해서 여러 고민, 시도들이 있었는데 팀원들이랑 왔다갔다 하면서 더 좋은 방법으로 리펙토링된 것 같아서 너무 좋다!