ExtJS 4를 사용 중이며 MVC 패턴을 준수하고 있습니다. 이벤트 처리자가 사용하는 도우미 함수를 어디에 둘 것인지 혼란 스럽습니다. 현재 내가하는 일 :ExtJS : 컨트롤러 기능 배치
Ext.define('App.controller.myController, {
extend: 'Ext.app.Controller.
stores: [...],
models: [...],
views: [...],
init: function() {
this.control({
'selector' : {
event1: this.onEvent1,
event2: this.onEvent2
}
});
},
onEvent1: function(args) {
// do stuff
helperFn();
},
onEvent2: function(args) {
// do other stuff
helperFn();
}
});
// is this 'right'?
function helperFn() {
// do other, other stuff
}
올바른 설정입니까? 아니면 다음과 같이해야합니까?
Ext.define('App.controller.myController, {
extend: 'Ext.app.Controller.
stores: [...],
models: [...],
views: [...],
init: function() {
this.control({
'selector' : {
event1: this.onEvent1.bind(this),
event2: this.onEvent2.bind(this)
}
});
},
onEvent1: function(args) {
// do stuff
this.helperFn();
},
onEvent2: function(args) {
// do other stuff
this.helperFn();
},
helperFn(): function() {
// do other, other stuff
}
});
하나의 스타일이 선호됩니까? 나는. 둘 중 하나의 주요 단점이 다른 것에 비해 있습니까?
아. 그렇습니다. 전통적인 OOP 스타일의 스타일링은 글로벌 일을 지적 해 주셔서 감사합니다. – Colin
헬퍼 함수로 Utility 클래스를 정의하는 것은 내가하는 일입니다. 매우 우아하고 건조한 솔루션. +1 –
나는 싱글 톤에주의해야한다. 내 경험에 의하면 그 범위를 알고 있어야하는 코드는 그 범위를 가진 클래스에 속한다. 유틸리티 싱글 톤은 부작용이없는 정말 단순한 함수에 유용하지만 두 클래스 사이에서 코드를 공유하기 위해 사용하지 않는 것이 좋습니다. 상속과 mixins 잘 작동합니다. 위와 같이 스코프를 전달하는 것이 내 책의 큰 붉은 깃발입니다. 지금부터 6 개월 후에는 코드를 읽지 않고 코드를 디버그해야 할 때 어디에서 왔는지를 알아 내려고 노력하고 있습니다. –