示例#1
0
{
    function encode()
    {
        return 'this is blogger object';
    }
}
class MegaApptEncoder extends ApptEncoder
{
    function encode()
    {
        return 'this is mega object';
    }
}
class CommsManager
{
    const BLOGGS = 1;
    const MEGA = 2;
    private $mode = 1;
    function getApptEncode()
    {
        switch ($this->mode) {
            case self::BLOGGS:
                return new BloggerEncoder();
            case self::MEGA:
                return new MegaApptEncoder();
        }
    }
}
$comms = new CommsManager(CommsManager::BLOGGS);
$apptEncoder = $comms->getApptEncode();
echo $apptEncoder->encode();