Ext JS - Learning Center

Manual:Intro:Patterns:Singleton (Korean)

From Learn About the Ext JavaScript Library

Revision as of 14:19, 3 July 2008 by Rhiokim-37383 (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Summary: Patterns:Singleton
Author: Unkown (번역 : Rhio.Kim)
Published: Unkown
Ext Version: 1.1
Languages: en.png English fr.png French kr.png Korean

Contents

정의

Singleton은 오브젝트의 유일한 인스턴스가 어플리케이션 내에서 생성될 수 있도록 하는 프로그래밍 디자인 패턴이다. Singleton은 글로별 변수처럼 한번만 정의되고 어플리케이션 내에서 어디서든지 이용할 수 있다.

Singleton 패턴은 Ext 예제 코드에서 계속 사용되어 집니다. 그러나 이 패턴을 선택한 이유는 예제만으로는 항상 명확해지지 않습니다. 한번만 호출되는 “init” 메소드로 전형적인 Ext예제는 Singleton을 이루고 있다. 그런 예제에서 Singleton은 실제로는 필요하지 않다. 그러나 예를 들어 여러분이 “reload” 메소드를 추가한다면 그것이 여러분의 어플리케이션 내에서 여러 곳으로부터 다시 어떻게 호출 될 수 있었느냐에 관해 볼지도 모른다 Singleton 을 사용하는 것에 의해, 어플리케이션 내 어디서든지 특정 윈도우 제어와 그것의 파라미터를 변경하고 접근할 수 있도록 단 하나의 유일한 인스턴스를 보장한다.


Singleton 오브젝트.

샘플 코드

Singleton = function(){
   var _instance = null;
   return {
      getInstance : function(){
         if(_instance === null){
            _instance = {};       //여기에 인스턴스를 정의
         }
         return _instance;
      }
   };
}();
 
Ext.onReady(function(){
   var x = Singleton.getInstance();
   var y = Singleton.getInstance();
 
   if(x == y){
      alert("Objects are the same instance");
   }
});


기존 클래스를 확장하는 Singleton 오브젝트

샘플 코드

myObservableSingleton = function(){
    var privateProperty = "Only accessible internally";
 
    function privateMethod() {
        alert("Only callable internally");
    }
 
    return Ext.apply(new Ext.util.Observable, {
        publicProperty: "You can access this",
 
        publicMethod: function() {
            alert("You can call this");
        }
    })
}();



 위키 피디아 참고자료 : Wikipedia Singleton Pattern