为前面步骤输出的顺序作业设计模式建议



我想设计一个字幕单词解析器。它是这样工作的;

  1. 查看字幕提供商是否可用
  2. 获取字幕作为inputStream
  3. 将inputStream转换为文本行
  4. 将行解析为节(字幕文件包括100-110节(
  5. 将小节的句子解析为单词
  6. 将字幕、小节和单词保存到数据库

如您所见,每一步都遵循前面的步骤输出。

我应该使用哪种设计模式?

我会考虑使用状态设计模式,它类似于策略设计模式,但在其上下文中包含当前状态。

所以你会有这样的东西:

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 ...
}
}

但我不确定复杂性,也不确定是否需要考虑这个问题的设计模式。

最新更新