2011-02-14 3 views
0

사용자 지정 선택 상자를 만드는 클래스가 있습니다. 그것의 일 벌금 및 나는이 종류를 더 일반적으로 원한다. 이러한 선택 상자에는 "onchange"이벤트 리스너도 있습니다.자바에서 클래스 종속성 제거

이제는 onchange 메서드를 호출하기 전에 복잡한 테스트를 수행하고 싶습니다. 이 테스트는 다른 클래스에서 정의됩니다.

일반성을 유지하려면 SelectBox 클래스 내에서 새 클래스를 초기화해야합니다. 이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 그리고 Perl 테스트에 필요한 데이터는 SelectBox 클래스 내에 있습니다.

덕분에 이렇게

+0

, 매개 변수로 그 클래스의 인스턴스를 통과 고려해야한다 코드는 간단히 설명하면 일반적으로 이와 같은 경우에는 충분하지 않습니다. –

답변

0
그 기능에 의존하지 않는 경우

글쎄, 새로운 초기화 - 객체 - 특정 변수, 당신은 단지 공공 정적들에 이러한 기능을 할 수

var AnotherClass = (function(){ 
    // this is a public static method 
    this.complexTask = function(){ alert('I am too complex for my shirt'); } 

    return function(){ 
    // initialization-dependent-stuff 
    } 
})(); 

var SelectBoxes = (function(){ 
    return function(){ 
     this.onChange = function(){ 
     AnotherClass.complexTask(); 
     } 
    } 
}); 

, 아무것도 초기화 할 필요가 없으며 원하는 방식으로 함수를 사용할 수 있습니다. 공용 정적 메서드를 사용할 수없는 경우 위의 방법은 preffered 있지만

또는, 당신은 당신이 실제로 우리에게 보여 않는 한 우리는 당신을 도울 수

관련 문제