Ejemplo n.º 1
0
function createAST($json_in)
{
    $json_local = $json_in;
    $context = new ContextVisitee('value1', 'value2');
    $contextVisitor = new ContextVisitor();
    acceptVisitor($value1, $value2);
    acceptVisitor($value1, $value2);
}
Ejemplo n.º 2
0
    }
    function visitSoftware(SoftwareVisitee $softwareVisiteeIn)
    {
        $this->setDescription($softwareVisiteeIn->getTitle() . '...!!! made !*! by !@@! ' . $softwareVisiteeIn->getSoftwareCompany() . '...www website !**! at http://' . $softwareVisiteeIn->getSoftwareCompanyURL());
    }
}
writeln('BEGIN TESTING VISITOR PATTERN');
writeln('');
$book = new BookVisitee('Design Patterns', 'Gamma, Helm, Johnson, and Vlissides');
$software = new SoftwareVisitee('Zend Studio', 'Zend Technologies', 'www.zend.com');
$plainVisitor = new PlainDescriptionVisitor();
acceptVisitor($book, $plainVisitor);
writeln('plain description of book: ' . $plainVisitor->getDescription());
acceptVisitor($software, $plainVisitor);
writeln('plain description of software: ' . $plainVisitor->getDescription());
writeln('');
$fancyVisitor = new FancyDescriptionVisitor();
acceptVisitor($book, $fancyVisitor);
writeln('fancy description of book: ' . $fancyVisitor->getDescription());
acceptVisitor($software, $fancyVisitor);
writeln('fancy description of software: ' . $fancyVisitor->getDescription());
writeln('END TESTING VISITOR PATTERN');
//double dispatch any visitor and visitee objects
function acceptVisitor(Visitee $visitee_in, Visitor $visitor_in)
{
    $visitee_in->accept($visitor_in);
}
function writeln($line_in)
{
    echo $line_in . "<br/>";
}