Java 遵循前面步骤输出的顺序作业的设计模式建议
我想设计一个字幕字解析器。它是这样工作的Java 遵循前面步骤输出的顺序作业的设计模式建议,java,design-patterns,sequential,Java,Design Patterns,Sequential,我想设计一个字幕字解析器。它是这样工作的 检查字幕提供商是否可用 获取字幕作为输入流 将inputStream转换为文本行 将行解析为节(一个字幕文件包括100-110节) 将章节的句子解析为单词 将字幕、章节和单词保存到数据库 正如您所看到的,每个步骤都遵循前面的步骤输出 我应该使用哪种设计模式?我会考虑使用,它类似于策略设计模式,但在其上下文中包含当前状态。 所以你会有这样的东西: class ProcessingData { private State state = new Ch
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 ...
}
}
但考虑到这个问题,我不确定设计模式的复杂性和必要性 我认为设计模式指的是其他东西,而不是你正在尝试做的事情。我建议您使用面向对象编程(OOP)的基础知识,因为您是在java上进行的。或者你可以编辑你的问题并解释你所引用的设计模式。实际上,我知道如何使用OOP进行设计。我不是在问面向对象的基本问题。每次我设计这样一个系统时,我都会编写一系列类,它们像链一样相互调用。因此,我无法在创建后阅读它。我不确定哪种设计模式适合我的情况。(陈述设计模式、责任链或命令模式)我在问哪一个可以使用这样的系统。“我写了一系列类,它们像链一样相互调用。所以我创建之后无法阅读它们。”。考虑创建具有实现接口的子类的类。它将最小化链接/读取的复杂性。我认为没有必要使用这样的设计模式。