博客列表 >理解PHP经典设计的三大模式。实例模式、工厂模式、注册树模式

理解PHP经典设计的三大模式。实例模式、工厂模式、注册树模式

Dream698
Dream698原创
2019年11月29日 23:08:10711浏览
  1. <?php
  2. class Tree
  3. {
  4. public $siteName;
  5. protected static $instance;
  6. protected function __construct($siteName)
  7. {
  8. $this->siteName=$siteName;
  9. }
  10. //获取本类的唯一实例
  11. public static function getInstance ($siteName="dream698")
  12. {
  13. if(!self::$instance instanceof self)
  14. {
  15. self::$instance =new self('www.feichengs.com');
  16. }
  17. return self::$instance;
  18. }
  19. }
  20. //使用工厂函数生成类
  21. class Factory
  22. {
  23. public static function create()
  24. {
  25. return Tree::getInstance();
  26. }
  27. }
  28. //使用注册树注册类
  29. class Register
  30. {
  31. public static $objects=[];
  32. //往注册树上挂
  33. public static function set($alias,$obj)
  34. {
  35. self::$objects[$alias]=$obj;
  36. }
  37. //获取注册树的对象
  38. public static function get($alias)
  39. {
  40. return self::$objects[$alias];
  41. }
  42. //销毁注册时
  43. public static function destroy($alias)
  44. {
  45. unset($objects[$alias]);
  46. }
  47. }
  48. Register::set("site",Factory::create());
  49. $obj=Register::get('site');
  50. var_dump($obj);
  51. ?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议