728x90
도입이유
DiaryViewController를 상속받는 일기 작성 뷰 컨트롤러들의 생성 메서드들이 각 클래스의 익스텐션에 들어있어서 너무 파편화되었다는 생각이 들었다.
해결책으로 DiaryViewControllerFactory() 클래스를 하나 새로 파서 만들어주기로 했다.
그리고 swiftApiDedignGuides에 따르면 팩토리 메서드 패턴에서 메서드의 네이밍은 make를 권장하고 있다.
createWithDiaryView에서 ViewController를 반환하니 makeViewController()로 변경하기로 했다.
⛑️ 에러 발생
깔끔해지긴 했는데.. 에러파티네
Instance member 'diaryViewFactory' cannot be used on type 'DiaryViewControllerFactory'
인스턴스 멤버 'diaryViewFactory'는 'DiaryViewControllerFactory' 타입에서 사용할 수 없다라..
static 메서드 내에서 정적(static) 메서드를 호출할 때는 클래스 자체에 대해 접근하므로, 인스턴스 속성에 접근할 수 없다고 한다.
쏘 클린 앤 깔끔
## 문제 발생
근데 이렇게 되면 일기 작성뷰로 화면전환을 시도하는 모든 ViewController에서 DiaryFactory를 참조해야하는 문제가 생긴다.
결론은
어차피 Factory 메서드로 생성하고 있어 클래스를 따로 만들어 추상화를 하는 방식이 더 맞는 방향이었다고 생각한다. 코디네이터 패턴도 도전해보고 싶어지네..