コード例 #1
0
    {
        return "BloggsCal footer\n";
    }
}
class MegaCommsManager extends CommsManager
{
    function getHeaderText()
    {
        return "MegaCal header\n";
    }
    function getApptEncoder()
    {
        return new MegaApptEncoder();
    }
    function getTtdEncoder()
    {
        return new MegaTtdEncoder();
    }
    function getContactEncoder()
    {
        return new MegaContactEncoder();
    }
    function getFooterText()
    {
        return "MegaCal footer\n";
    }
}
$mgr = new MegaCommsManager();
print $mgr->getHeaderText();
print $mgr->getApptEncoder()->encode();
print $mgr->getFooterText();
コード例 #2
0
ファイル: index3.php プロジェクト: captaim/designMode
class MegaApptEncoder extends ApptEncoder
{
    function encode()
    {
        return 'this is mega object';
    }
}
abstract class CommsManager
{
    abstract function getApptEncoder();
}
class BloggerCommsManager extends CommsManager
{
    function getApptEncoder()
    {
        return new BloggerApptEncoder();
    }
}
class MegaCommsManager extends CommsManager
{
    function getApptEncoder()
    {
        return new MegaApptEncoder();
    }
}
$blogger = new BloggerCommsManager();
$bloggerOb = $blogger->getApptEncoder();
echo $bloggerOb->encode() . "<br/>";
$mega = new MegaCommsManager();
$megaOb = $mega->getApptEncoder();
echo $megaOb->encode();