php设计模式-延迟初始化(Lazy Initialization)

来源:互联网 发布:腾讯传奇霸业羽毛数据 编辑:程序博客网 时间:2024/06/13 03:11

转自:https://segmentfault.com/a/1190000003817321

对于某个变量的延迟初始化也是常常被用到的,对于一个类而言往往并不知道它的哪个功能会被用到,而部分功能往往是仅仅被需要使用一次。

<?phpinterface Product {    public function getName();}class Factory {    protected $firstProduct;    protected $secondProduct;    public function getFirstProduct() {        if (!$this->firstProduct) {            $this->firstProduct = new FirstProduct();        }        return $this->firstProduct;    }    public function getSecondProduct() {        if (!$this->secondProduct) {            $this->secondProduct = new SecondProduct();        }        return $this->secondProduct;    }}class FirstProduct implements Product {    public function getName() {        return 'The first product';    }}class SecondProduct implements Product {    public function getName() {        return 'Second product';    }}$factory = new Factory();print_r($factory->getFirstProduct()->getName());// The first productprint_r($factory->getSecondProduct()->getName());// Second productprint_r($factory->getFirstProduct()->getName());// The first product


阅读全文
0 0
原创粉丝点击