1
A
回答
0
在這裏你去:
/**
* Base class for Polymorphic Singleton.
*/
class Polymorphic_Singleton {
/**
* @var Polymorphic_Singleton
*/
private static $__instance = null;
private static $__instance_class_name = "";
/**
* Gets an instance of Polymorphic_Singleton/
*
* Uses a Polymorphic Singleton design pattern. Maybe an anti-pattern. Discuss amongst yourselves.
*
* Can be called by a subclass, and will deliver an instance of that subclass, which most Singletons don't do.
* You gotta love PHP.
*
* @return Polymorphic_Singleton
*/
final public static function get_instance(){
if (! isset(self::$__instance)){
self::$__instance_class_name = get_called_class();
self::$__instance = new self::$__instance_class_name(); // call the constructor of the subclass
}
return self::$__instance;
}
/**
* Don't ever call this directly. Always use Polymorphic_Singleton ::get_instance()
*
* @throws Exception if called directly
*/
public function __construct(){
if (! self::$__instance){
// do constructor stuff here...
} else {
throw new Exception("Use 'Polymorphic_Singleton ::get_instance()' to get a reference to this class.", 100);
}
}
}
0
我不清楚地瞭解你所說的「多態單」是什麼意思。 Singleton模式本身已經在很多地方已經說明那裏,例如:
http://en.wikipedia.org/wiki/Singleton_pattern
在PHP中,你可以使用這個簡單的代碼實現Singleton模式:
<?php
class Something
{
private static $instance;
private function __construct() {}
private function __clone() {}
public static function getInstance()
{
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
}
// how to use
$instance1 = Something::getInstance();
$instance2 = Something::getInstance();
var_dump($instance1 === $instance2); // returns true proving that getInstance returns identical instance
+0
我知道單身模式,id喜歡瞭解自己什麼是多態單身意思,這就是爲什麼問這裏的問題:) 可能是意味着通過單身模式的服務經理類 – Eugene
相關問題
- 1. 需要例如像在PHP
- 2. PHP動態需要
- 3. 需要許多人在多態關聯
- 4. 需要單例COM對象
- 5. OSMDroid簡單示例需要
- 6. 多線程單例:實例方法是否需要互斥鎖?
- 7. 需要幫助多態性
- 8. 需要在單個實例上自動部署多個Tomcat嗎?
- 9. 需要多少PHP memory_limit?
- 10. 需要在PHP
- 11. 需要在PHP
- 12. 需要在PHP
- 13. 需要實現單點登錄在PHP
- 14. 需要進行多次JSON對象單一的文件在PHP
- 15. PHP多態根要求
- 16. 需要在靜態和非靜態方法中使用實例
- 17. 我需要在php
- 18. 我需要在PHP
- 19. JSONobj需要在PHP
- 20. PHP:我需要在PHP
- 21. 單個Userform的多個實例/需要指針
- 22. 不需要的多個實例java
- 23. 需要簡單的Web服務示例
- 24. 需要簡單的協議示例?
- 25. 單例類濫用,C++ - 解釋需要
- 26. Angular 2:Signature Pad需要單獨實例
- 27. 簡單的VBA例程需要考試
- 28. C#簡單的DataSocket實例需要
- 29. 需要`Hello World`爲Java簡單示例
- 30. 我需要簡單的python oAuth示例
http://phpadvocate.com/blog/2011/04/php-using-a-singleton-pattern-with-oop/ –