golang으로 디자인패턴 공부하고 있는데 강의에서 단일책임원칙 관련 파트에서 위 예제 코드를 보여줬는데

왼쪽 코드의 Save 함수가 SRP를 위배하기때문에 오른쪽처럼 따로 만들어줘야한대


근데 왼쪽 코드가 SRP를 위배하니까 따로 Persistence 구조체를 만든건 알겠는데

왜 Persistence의 receiver function에서 Journal 타입을 받는 Save함수를 만든건지 이해가 안감


내가 알기로는 저런 경우 인터페이스를 하나 더 만들어서 SaveToFile함수에서 Journal 타입 대신에 인터페이스 타입을 파라미터로 받아서 코드 재사용성도 높여야하는걸로 알고있는데

위 코드처럼하면 다른 타입의 구조체를 저장하려면 또 함수를 새로 만들어야되는데 도대체가 이점이 뭔지를 모르겟음