コード例 #1
0
    }
    public function getName()
    {
        return "User from database /factory/";
    }
}
class UserFile implements IUser
{
    public function __construct($id)
    {
    }
    public function getName()
    {
        return "User from filebase /factory/";
    }
}
class UserFactory
{
    public static function Create($id)
    {
        if ($id > 1000) {
            return new UserDb($id);
        } else {
            return new UserFile($id);
        }
    }
}
$uo = UserFactory::Create(2000);
echo $uo->getName() . "<br>";
$uo = UserFactory::Create(500);
echo $uo->getName() . "<br>";
コード例 #2
0
ファイル: paterns.php プロジェクト: nidorx/JFLT
    public function getName() {
        return "Jack";
    }

}

class UserFactory {

    public static function Create($id) {
        return new User($id);
    }

}

$uo = UserFactory::Create(1);
echo( $uo->getName() . "\n" );
?>




<?php

/*
  « 2 - The singleton pattern »
  <<------------------------------------------------------------------------------
  resultado da execução:
  Handle = Object id #3
  Handle = Object id #3
コード例 #3
0
ファイル: factory-1.php プロジェクト: ralf000/PHP4
            default:
                // Ошибка - неизвестный тип пользователя
        }
    }
}
function boolToStr($b)
{
    if ($b == true) {
        return "Да\n";
    } else {
        return "Нет\n";
    }
}
function displayPermissions(User $obj)
{
    print "Права доступа пользователя " . $obj->getName() . ":\n";
    print "Чтение: " . boolToStr($obj->hasReadPermission());
    print "Изменение: " . boolToStr($obj->hasModifyPermission());
    print "Удаление: " . boolToStr($obj->hasDeletePermission());
}
function displayRequirements(User $obj)
{
    if ($obj->wantsFlashInterface()) {
        print "Для пользователя " . $obj->getName() . " требуется Flash-интерфейс\n";
    }
}
$logins = array("John", "Mike", "Vasya");
foreach ($logins as $login) {
    displayPermissions(UserFactory::Create($login));
    displayRequirements(UserFactory::Create($login));
}