Любой простой способ разбить массивный коммутатор на дизайн ОО состоит в том, чтобы иметь
псевдокод
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 наметод на этом объекте токена, чтобы определить, относится ли следующий бит строки к этому типу токена.
Ранее:
class TokenParse {
public void parseTokens(string data) {
for each step in data {
switch (step) {
case x:
...
case y:
...
...
}
}
...
}
}