Php 有没有办法限制一个类只创建两个对象
我知道单例对象设计模式。Php 有没有办法限制一个类只创建两个对象,php,oop,design-patterns,Php,Oop,Design Patterns,我知道单例对象设计模式。 如何允许一个类只创建两个不同的对象,那么它应该抛出一个错误。可以执行以下操作: 为类创建静态变量 将其初始化为0 在构造函数内部检查静态变量的值。如果超过2,则抛出一个错误。否则继续 @Ashwini答案的代码版本: <?php class Limited { private static $amount = 0; public function __construct() { self::$amount++;
如何允许一个类只创建两个不同的对象,那么它应该抛出一个错误。可以执行以下操作:
@Ashwini答案的代码版本:
<?php
class Limited {
private static $amount = 0;
public function __construct()
{
self::$amount++;
if(self::$amount > 2) {
throw new Exception('Limit reached');
}
echo 'I am number ' . self::$amount . "\n";
}
}
$obj1 = new Limited();
$obj2 = new Limited();
try {
$obj3 = new Limited();
} catch(Exception $e) {
$obj3 = null;
unset($obj3);
}
与singleton相同,但将实例存储在单独的变量或数组中。我仍然没有看到任何逻辑用例:)您正在查看模式。这样,单态就成为了多态模式的特例。