我看到自己经常这样做:
function getTheProperty()
{
if (! isset($this->theproperty)) {
$property = // logic to initialise thepropery
$this->theproperty = $property;
}
return $this->theproperty;
}
这很好,因为它避免了用于初始化值的复杂逻辑。但是,据我所知,不利的一面是我无法准确确定客户将如何使用它,这可能会令人困惑。
这是一个很好的模式吗?这样做时应该考虑什么?
添加一个参数如何 - 例如 $forceNew 绕过记忆?