Mẫu Multiton được mở rộng từ mẫu singleton. Nếu bạn nào để ý sẽ phát hiện ngay trong mẫu singleton phần contructor hoàn toàn không có tham số trong đó. Nhưng trong rất nhiều trường hợp, chúng ta cần khởi tạo một đối tượng với những thông số cấu hình nhất định, và cũng chính vì điều này mà multiton ra đời.
Multiton
<?php class Multiton { private static $_instances = array(); private static $_key; private $_opt1; private $_opt2; protected function __construct($param1, $param2) { $this->_opt1 = $param1; $this->_opt2 = $param2; } public static function getInstance($param1, $param2) { self::$_key = $param1 . $param2; if(!self::$_instance[self::$_key] instanceof self) self::$_instance[self::$_key] = new self($param1, $param2); return self::$_instance[self::$_key]; } }