业务逻辑验证模式和建议

业务逻辑验证模式和建议,第1张

业务逻辑验证模式和建议

您可以使用策略模式

可以将每个条件建模为一个函数,该函数需要发布和会话,并可能返回错误:

Post -> PostContext -> Optional<String>

您可以用一个接口来表示:

@FunctionalInterfacepublic interface ValidationCondition {    Optional<String> validate(final Post post, final Session session);}

因此,例如:

public class CreatorValidation implements ValidationCondition {    public Optional<String> validate(final Post post, final Session session) {        if (post.getCreator().equals(session.getUser()) { return Optional.empty();        }        return Optional.of("You should be the owner of the post");    }}

然后,您可以将每个验证存储在列表中:

final List<ValidationCondition> conditions = new ArrayList<>();conditions.add(new CreatorValidation());conditions.add(new Scorevalidation());// etc.

使用该列表,可以批量应用验证:

final List<String> errors = new ArrayList<>();for (final ValidationCondition condition : conditions) {    final Optional<String> error = condition.validate(post, session);    if (error.isPresent()) {        errors.add(error.get());    }}

使用Java 8 lambda,可以内联声明以下代码:

final ValidationCondition condition = (post, session) -> {    // Custom logic});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5561534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存