应商交付产品后重置其生成环境

我采取的地方在交付是通过调用检索的建设者Builder::getProduct() 。 导演要求的各种配件组装Builder::buildPartA() Builder::buildPartB()等。 为了彻底打造的产品。
我的问题是,一旦产品是由生成器提供通过调用Builder::getProduct()它应该重置其环境( Builder::partA = NULL; Builder::partB = NULL;因此它是准备建其他产品? (具有相同或不同的配置?)

其中,对象是默认通过引用(不,我不想通过我问这个,因为我使用PHP clone他们,因为他们的领域之一是Resource )。 但是,即使你从一个语言无关点想,应该建造重置其构建环境? 如果你的答案是“这取决于案件”将证明什么用例CH375复位环境(和其他方式轮)?

对于这里提供的代码示例的缘故是我的Builder::gerProcessor()这表明通过CH375复位环境我是什么意思

/** * @see IBuilder::getProessor() */ public function getProcessor() { if($this->_processor == NULL) { throw new LogicException('Processor not yet built!'); } else { $retval = $this->_processor; $this->_product = NULL, $this->_processor = NULL; } return $retval; }

--------------解决方案-------------

重置的状态getProcessor()是非显而易见的,如果你想做到这一点的方法应该反映它的名字,如getProcessorAndReset() 一个清洁的解决办法是只给建筑商单独reset()方法。

一般情况下,你的getProcessor()不应该重置它的内部状态,因为方法不能幻化的行为,但确实也这样做。 getProcessor()是一个查询和查询应该返回在每次调用相同配置的处理器。 它不应该改变状态。 重置状态的命令。 你想单独的命令和查询方法。

分类:语言无关 时间:2015-03-16 人气:3
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.514 (s). 10 q(s)