golang으로 디자인패턴 공부하고 있는데 강의에서 단일책임원칙 관련 파트에서 위 예제 코드를 보여줬는데
왼쪽 코드의 Save 함수가 SRP를 위배하기때문에 오른쪽처럼 따로 만들어줘야한대
근데 왼쪽 코드가 SRP를 위배하니까 따로 Persistence 구조체를 만든건 알겠는데
왜 Persistence의 receiver function에서 Journal 타입을 받는 Save함수를 만든건지 이해가 안감
내가 알기로는 저런 경우 인터페이스를 하나 더 만들어서 SaveToFile함수에서 Journal 타입 대신에 인터페이스 타입을 파라미터로 받아서 코드 재사용성도 높여야하는걸로 알고있는데
위 코드처럼하면 다른 타입의 구조체를 저장하려면 또 함수를 새로 만들어야되는데 도대체가 이점이 뭔지를 모르겟음
책에서 인터페이스를 쓰면, SRP를 설명하려던 원래 목적에 인터페이스를 왜 쓰는지, 재사용을 높이면 장점은 뭐고 단점은 뭔지 추가해야하니까 안썼겠지
그건 SRP가 아니라 다른 원칙과 관련된 거라 언급 안한거 아닐까
고랭으로 디자인패턴 알려주는 강의가 있음?? 나도 알료조
책제목점