| Summary: Basic Application Design |
| Author: Ext community (번역 : Rhio.Kim) |
| Published: Unkown |
| Ext Version: 1.1 |
Languages: English Korean
|
더글러스 크록포드에 의해서 고안된 Module Pattern은 웹 어플리케이션을 가장 강력하고 유연하게 만드는 설계 방법입니다..
여러분은 여기에서 몇 가지 방법을 찾을 수 있을 것입니다.
module = function(){ var count = 0; // 모듈을 위한 Private 변수. 외부에서 접근 할 수 없다. var increaseCount = function(){ // Private 함수, 외부에서 접근할 수 없다. count++; }; return { init : function(){ // Privileged 메소드. 외부에서 호출될 수 있다. // 초기화 코드 }, getCount : function(){ // Privileged 메소드. 외부에서 호출될 수 있다. return count; }, checkCount : function(){ increaseCount(); if (this.getCount() > 10) alert("count is greater than 10"); } } }();
또한 이 패턴은 여러분의 자바스크립트 코드에서 훌륭한 역할을 하도록 해줍니다. 지금 여러분은 getCount 라는 privileged 메소드를 호출하기 위해 아래처럼 할 수 있습니다.
module.getCount();
그러나 여러분은 count 변수와 increaseCount private 메소드에 직접적으로 접근할 수 없지만
여러분은 위에서 사용했던 checkCount privileged 메소드나 increaseCount private 메소드 처럼 privileged 메소드 내부에서는 그것들을 접근할 수 있습니다.
전형적인 Ext 어플리케이션은 이런식으로 개발되어졌습니다.
module = function(){ var count = 0; // 모듈을 위한 Private 변수. 외부에서 접근 할 수 없다. var increaseCount = function(){ // Private 함수, 외부에서 접근할 수 없다. count++; } return { init : function(){ // Privileged 메소드. 외부에서 호출될 수 있다. // 초기화 코드 }, getCount : function(){ // Privileged 메소드. 외부에서 호출될 수 있다. return count; }, checkCount : function(){ increaseCount(); if (this.getCount() > 10) alert("count is greater than 10"); } } }(); Ext.onReady(module.init, module);
마지막 구문은 두 가지 역할을 합니다 : 그것은 module.init을 수행하고 document가 완전히 로드되었을 때, module에 scope을 설정합니다.
Module에 scope를 설정하는 의미는 아래의 init 메소드 내부에서 checkCount 함수를 호출 할 수 있도록 하는 것입니다.
init : function(){ this.checkCount(); }
Ext 어플리케이션 설계와 함께 시작하기 위한 학습은 이 정도로 충분합니다. 더욱더 자세한 사항은 Ext Documentation를 참고해주세요.