gpt4 book ai didi

design-patterns - 我可以使用哪些编码或设计模式来强制执行所需的方法调用序列?

转载 作者:行者123 更新时间:2023-12-04 07:10:45 25 4
gpt4 key购买 nike

我写了下面几行代码:

$this->validate($group);

$this->em->persist($group);
$this->em->flush();

如果 $group 无效,方法“validate”将抛出异常。问题是,它似乎有点“脆弱”。如果另一个开发人员更改了这段代码,他可能会不小心移动了验证方法,实体管理器会在不验证的情况下将对象保存到数据库中。

你认为下面的代码行更好还是我想多了?

$validGroup = $this->validate($group);

$this->em->persist($validGroup);
$this->em->flush();

是否有验证模式?

最佳答案

Template Pattern适合特定于此问题。

在模板模式中,抽象类公开定义的方式/模板来执行其方法。它的子类可以根据需要覆盖方法实现,但调用方式与抽​​象类定义的方式相同。此模式属于行为模式类别。

abstract class MyTemplate{
void myPersist(){
validate();
persist();
flush();
}

关于design-patterns - 我可以使用哪些编码或设计模式来强制执行所需的方法调用序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35962964/

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