我想设计一个字幕单词解析器。就是这样;
您看到的每个步骤都遵循先前的步骤输出。
我应该使用哪种设计模式?
答案 0 :(得分:0)
我会考虑使用state design pattern,它类似于策略设计模式,但在其上下文中包含当前状态。
所以你会有类似的东西:
class ProcessingData {
private State state = new CheckAvailabilityState();
//Fill with all data related to the subtitle-word parser
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
}
interface State {
void next(ProcessingData processingData);
void prev(ProcessingData processingData);
void execute();
}
class CheckAvailabilityState implements State {
@Override
public void next(ProcessingData processingData) {
processingData.setState(new FetchSubtitlesState());
}
@Override
public void prev(ProcessingData processingData) {
//this is 1st step so no prev
}
@Override
public void execute() {
//Availability check goes here ..
}
}
class FetchSubtitlesState implements State {
@Override
public void next(ProcessingData processingData) {
//ConvertState
}
@Override
public void prev(ProcessingData processingData) {
processingData.setState(new CheckAvailabilityState());
}
@Override
public void execute() {
//Fetching goes here ...
}
}
但是我不确定是否存在复杂性或考虑到该问题是否需要设计模式。