Зачем мне использовать цепочку ответственности за заявление о смене

Представьте, что вы получили несколько проверок. Эти проверки должны вступать в силу только в том случае, если подлежащий проверке объект относится к определенному типу. Зачем мне использовать цепочку ответственности за заявление о замене?

Пример с цепочкой ответственности

public class Executor {

@Inject
private ValidatorFactory validatorFactory;

public void execute(Konfiguration konfig) {
    List<Statement> statements = konfig.getStatements();
    AbstractValidator validator = validatorFactory.create();
    for (Statement statement : statements) {
        if (validator.validate(statement.getType())) {
            crudService.execute(statement.getSql());
        }
    }
}

ValidatorFactory создает цепочку валидаторов. Один валидатор будет выглядеть

public class AddPrimaryKeyValidator extends AbstractValidator {

@Override
public boolean validate(Statement statement) {
    if (SqlType.ADD_PK.getTyp().equals(statement.getType())) {
        return doesTableAndPrimaryKeyExist(statement.getTabName());
    }
    return successor.validate(statement);
}

Пример с оператором switch

public void execute(Konfiguration konfig) {
    List<Statement> statements = konfig.getStatements();
    for (Statement statement : statements) {
        switch (statement.getType()) {
        case "ADD_PK":
            if (doesTableAndPrimaryKeyExist(statement.getTabName())) {
                frepCrudService.execute(statement.getSql());
            }
            // more cases
        }
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос