2010-10-04 186 views
0

對於一個項目我有一些對象,一種方法是加載父實體。所以我打電話給我這樣的方法: $ this-> getDetails() - > getEntity();是否需要緩存對象?

所以getEntity的代碼是:

public function getEntity() 
{ 
    if (isset($this->entity)) { 
    return $this->entity; 
    } else { 
    $mapper = new Crm_Mapper_Entity(); 
    return $this->entity = $mapper->find($this->customerId); 
    } 
} 

是有必要的實體加載到屬性?因爲當我想把它加載到另一個地方時,它不應該再次調用映射器。

或者當它被加載時,對象已經在內存中,我不需要將它放入屬性中?

感謝

回答

0

使用Singleton模式是這樣的:

class MyStatic{ 
    private static $instance; 

    private __construct(){} 

    public static getInstance(){ 

    if (!empty(MyStatic::$instance;)) { 
      return MyStatic::$instance; 
     } else { 
      $mapper = new Crm_Mapper_Entity(); 
      $thisMyStatic::$instance = $mapper->find($this->customerId); 
      return $thisMyStatic::$instance; 
     } 

    } 

} 
+0

不要使用Singleton模式。 http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/ – dynamic 2011-05-31 14:24:33