使用委托设计模式
问题描述:
请求或负载实例化一个对象就找这个不同意见和理由:使用委托设计模式
我想保持委派的类单独的数据库表应该我:
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
}
如果我得到很多颜色对象的请求,我最好存储它以节省数据库读取?增加的内存使用量是一个很好的折衷?想法..
谢谢,两全其美。 – olsgreen 2011-05-19 12:46:40