gpt4 book ai didi

oop - 用于解析文本文件的面向对象设计模式?

转载 作者:行者123 更新时间:2023-12-02 08:14:11 24 4
gpt4 key购买 nike

作为我正在开发的软件包的一部分,我需要为应用程序特定的文本文件实现一个解析器。我已经在纸上指定了这些文件的语法,但很难将其转换为易于阅读/可更新的代码(现在只是通过大量的 switch 语句传递每一行)。

那么,有什么好的设计模式可以在 Java 风格的 OO 环境中实现解析器吗?

最佳答案

将大规模切换分解为面向对象设计的任何简单方法都是

伪代码

class XTokenType {
public bool isToken(string data);
}

class TokenParse {
public void parseTokens(string data) {
for each step in data {
for each tokenType in tokenTypess {
if (tokenType.isToken(step)) {
parsedTokens[len] = new tokenType(step);
}
...
}
}
...
}
}

在这里,您将每个 switch 语句分解为该 token 对象上的一个方法,以检测字符串的下一位是否属于该 token 类型。

以前:

class TokenParse {
public void parseTokens(string data) {
for each step in data {
switch (step) {
case x:
...
case y:
...
...
}
}
...
}
}

关于oop - 用于解析文本文件的面向对象设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com