2011-05-19 53 views
0

请求或负载实例化一个对象就找这个不同意见和理由:使用委托设计模式

我想保持委派的类单独的数据库表应该我:

A)存储委派的对象记录的ID并启动它,像这样的请求......

class Book { 

    private $Name; 
    private $Color_ID; 

    public 
    function getColor() { 
     return new Color($this - > Color_ID); 
    } 
    //etc 
} 

class Color { 

    private $Color_ID; 
    private $Color_Name; 

    public 
    function __construct($Color_ID) { 
     //Get from DB 
    } 
    //etc 
} 

B)发起和对象存储父启动:

class Book { 

    private $Name; 
    private $Color; 

    public 
    function __construct() { 
     //Get $Color_ID from Books table 
     $this - > Color = new Color($Color_ID); 
    } 

    public 
    function getColor() { 
     return $Color; 
    } 
    //etc 
} 

class Color { 

    private $Color_ID; 
    private $Color_Name; 

    public 
    function __construct($Color_ID) { 
     //Get from DB 
    } 
    //etc 
} 

如果我得到很多颜色对象的请求,我最好存储它以节省数据库读取?增加的内存使用量是一个很好的折衷?想法..

回答