审查一个生成的钱包对象

来自 面向对象编程
PHP 8.3.33 高级 8分钟 找出 4处问题

在这个生成类保存账户余额前进行审查。

建立一个使用整数分保存余额且永不为负的钱包,注入窄小审计接口,并公开一个经过校验的取款操作。

php
final class Wallet
{
    public int $balanceCents;

    public function __construct(int $balanceCents, $audit)
    {
        $this->balanceCents = $balanceCents;
        $this->audit = $audit;
    }

    public function withdraw(int $cents): bool
    {
        if ($cents > $this->balanceCents) {
            return false;
        }
        $this->balanceCents -= $cents;
        $this->audit->record("withdrew {$cents}");
        return true;
    }

    public function __call(string $name, array $arguments): mixed
    {
        return $this->audit->$name(...$arguments);
    }
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误