<?php namespace Moserware\Skills\FactorGraphs; require_once(dirname(__FILE__) . "Variable.php"); class VariableFactory { // using a Func<TValue> to encourage fresh copies in case it's overwritten private $_variablePriorInitializer; public function __construct($variablePriorInitializer) { $this->_variablePriorInitializer = $variablePriorInitializer; } public function createBasicVariable() { $newVar = new Variable($this->_variablePriorInitializer()); return $newVar; } public function createKeyedVariable($key) { $newVar = new KeyedVariable($key, $this->_variablePriorInitializer()); return $newVar; } } ?>