나는 구분 된 텍스트를 파싱하는 파서를 연구 중이다. 예위치 구분 된 텍스트 구문 분석을위한 디자인 패턴?
위치 1-10 : 필드 위치 11-20 : 필드 B 위치 21-30 : 필드 C 등
내가 구현하는 데 사용할 수있는 모든 디자인 패턴은? 나는 내가 사용해야한다고 생각한다 Visitor pattern
나는 구분 된 텍스트를 파싱하는 파서를 연구 중이다. 예위치 구분 된 텍스트 구문 분석을위한 디자인 패턴?
위치 1-10 : 필드 위치 11-20 : 필드 B 위치 21-30 : 필드 C 등
내가 구현하는 데 사용할 수있는 모든 디자인 패턴은? 나는 내가 사용해야한다고 생각한다 Visitor pattern
Visitor
패턴?! 그냥 substring()
을 라인으로 파일 라인을 읽고 사용 : 내가 모르는 뭔가가
String line = //...
String a = line.substring(0, 10);
String b = line.substring(10, 20);
String c = line.substring(20, 30);
암을? 질문을 명확히 할 수 있습니까?
나는 그것도 생각했다. 내가 그것을 복잡하게하고있는 것처럼 보인다. = p – youcanlearnanything
입력 텍스트의 형식이 항상 동일한 상황에서 패턴을 사용할 필요는 없지만 형식을 변경해야하는 경우가 있습니다. 예를 들어, 나중에 응용 프로그램 이 추가 파일 형식을 지원한다고 생각하면 Strategy Pattern이 유용 할 것입니다.
class LineData {
public String a;
public String b;
public String c;
}
interface FileParser {
List<LineData> parse(String fileName);
}
class FileParserFixed : FileParser {
public int widthOfA;
public int widthOfB;
public int widthOfC;
public List<LineData> parse(string fileName) {
}
}
class FileParserDelimited : FileParser {
public char delimiter;
public List<LineData> parse(string fileName) {
}
}
FileParser의 인터페이스에 프로그래밍 할이 방법을 사용하는 응용 프로그램 및 구분 및 고정 폭 파일을 구문 분석 구문 분석의 차이점은 런타임에 뜨리는 FileParser
의 구현에 캡슐화된다.
왜 이런 패턴이 필요한 이유가 있을까요? 패턴이 있다고해서 반드시 사용해야한다는 것은 아닙니다. –