텍스트 파일을 파싱해서 클래스(이름은 Chart임)를 뱉는 함수를 만들고 싶은데

그 함수를 어디다 정의해야할지 모르겟음.


1. Chart 안에 static 함수로 정의한다.


Chart chart = Chart::from_file(filename);

이런식으로 되니까 최종적으론 코드가 존나 보기 좋아지는데

이렇게하면 Chart 클래스에서 파싱도 해야되니까 클래스가 쓸데없이 커지게됨


2. 팩토리 클래스를 만든다.


대충 파서 클래스를 만들어서 거기안에 멤버함수로 parse_from_file()같은 식으로 만들면 될거같은데

근데 이렇게 하면


Parser parser;

Chart chart = parser.parse_from_file(filename);

이렇게 두줄써야되서 좀 기분이 안좋고

Parser 객체는 한번 파싱 함수 호출하고 버리거나

파싱 함수를 호출할때마다 매번 내부 변수를 초기화해야 하는데 둘다 거지같음



이거 두개밖에 생각이 안나는데 둘다 좆같음
더좋은 해결법 있으면 알려주셈