[독서노트-재구성과 모드] 단례 모드.

1170 단어 데이터베이스
에서 지적한 바와 같이 전역 변수는 대상 프로그래머가 만나는 버그를 일으키는 주요 원인 중 하나이다. 이것은 전역 변수가 클래스를 특정한 환경에 묶어 봉인을 파괴했기 때문이다.그러나 모든 종류가 특정한 대상에 접근할 수 있도록 전역 접근의 결함을 참는 것을 아끼지 않는다.
총괄적으로 말하면 전역 변수를 사용하지 않고 모든 종류가 대상에 접근할 수 있도록 하려고 한다.문제의 핵심은 다음과 같습니다.
   1.대상은 시스템의 모든 대상에 의해 사용되어야 한다.
   2.대상은 복사될 전역 변수에 저장되어서는 안 된다.
   3.시스템에 하나를 초과하는 이 변수가 나타나서는 안 된다.
이 방안을 해결하기 위해서는 단일 모드를 사용할 수 있다.
단일 모델의 실현 사상은 클래스의 구조 함수를private 권한으로 설정하고 정적 방법과 정적 속성을 이용하여 간접적인 실례화 대상을 사용하는 것이다.
class  singleton{
    private static $instance = NULL;
    private  $props = array();
    private function __construct(){
    }

    public static function getInstance(){
        if(empty(SELF::$instance)){
            SELF::$instance = new SELF(); 
        }
        return  self::$instance;
    }
      
    public function setProp($prop,$value){
        $this->props[$prop] = $value;
    }
    public function getProp($prop){
        return $this->props[$prop];
    }
    
    private function __set($prop,$value){
        // 
    }
    private function __get(){
        // 
    }

    private  function __clone(){
       // 
    }
}

단일 예제 모드의 UML 그림은 다음과 같습니다.

좋은 웹페이지 즐겨찾기