生成对象---单例模式

 

  • 单例模式
  1. 解决的问题

preferences对象应该可以被系统中的任何对象使用

preferences对象不应储存在会有被复写的全局变量中

系统中只能有一个preferences对象

  1. 实现
     
<?php
class preferences{
    private static $instance;

    private function __construct(){

    }

    public static function getInstance(){
        if(!(self::$instance instanceof self)){
            self::$instance = new self;
        }
        return self::$instance;
    }

    protected function __clone(){

    }
}

preferences::getInstance();
?>

 

  1. uml类图

  1. 结果

单例可能被无用,因为单例在系统任何地方都能被访问,可能导致很难调试的依赖问题 
单例对象的全局化性质会导致程序员绕过类接口定义,导致依赖关系会被隐藏在方法内部,而不会出现在方法声明中

posted @ 2016-11-11 16:15  rcj_飞翔  阅读(103)  评论(0编辑  收藏  举报