Php 使用delegator设计模式在请求或加载时实例化对象

Php 使用delegator设计模式在请求或加载时实例化对象,php,Php,只是在寻找不同的观点和理由: 我想为委派的类维护单独的数据库表,我应该: A) 存储委托对象记录的ID,并根据请求启动它,如 class Book { private $Name; private $Color_ID; public function getColor() { return new Color($this - > Color_ID); } //etc } class Color { privat

只是在寻找不同的观点和理由:

我想为委派的类维护单独的数据库表,我应该:

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
}

如果我收到很多对颜色对象的请求,我是否最好将其存储起来以保存在DB读取上?增加内存使用是一个很好的权衡吗?思考..

看看延迟加载模式

也可能是身份地图