0
나는 나 자신이 많은 일 참조 :이 값을 초기화하는 데 사용되는 epxensive 논리를 피할 수 있기 때문에강제로 메모를 작성해야합니까?
function getTheProperty()
{
if (! isset($this->theproperty)) {
$property = // logic to initialise thepropery
$this->theproperty = $property;
}
return $this->theproperty;
}
이 좋다. 그러나, 지금까지 내가 볼 수있는 단점은 클라이언트가 이것을 어떻게 사용할 것인지 정확하게 결정할 수없고 혼란 스러울 수 있다는 것입니다.
사용하기에 좋은 패턴입니까? 이 작업을 수행 할 때 고려해야 할 사항은 무엇입니까?
memoization을 우회하는 매개 변수 - 예를 들어 $ forceNew를 추가하는 방법은 어떻습니까?
값을 초기화하는 데 많은 작업/시간이 소요된다는 점에서 비용이 많이 듭니다. 아마도 대용량 db 읽기, API 호출 등. –
코드 예제에별로 관심이 없습니다. 죄송합니다. –
@ MartyWallace 예. 나는 memoization에 대해 읽었을뿐입니다. [나는 그것이 오타라고 생각했습니다.]이 대답을 다시 써 보겠습니다. – Sammitch