에 따라 나는 전화 중 하나 GUI 나 비 그래픽 환경 "이야기"하는 가장 편리한 가장 좋은 방법은 방법은 무엇 (배치 모드)
변경 코드 동작 상황
을 형성 할 수있는 클래스가 배치 모드에서 실행될 때 코드의 GUI 관련 부분을 실행하지 마십시오. 내가 못생긴 추적 경우를 방지 할
나는
public MyMethod()
{
[@TAG: DOTHIS_ONLY_IF_GUIMODE]
ShowPanels();
....
}
같은 것을 생각 그리고 GUI_MODE_ACTIVATED는, 어딘가에 true 또는 런타임에 false로 설정 프로그램이
에서 호출되는 위치에 따라 할 것/다른 것들은 제 코드 전체에 흩어져 있습니다.
내 작은 엄지 손가락은 AOP가 갈 길이라고 말해 준다. (그러나 더 간단한 대안을 찾으면 내가 갈 것이다.)
그래서, 가장 단순하고 간단한 방법은 무엇일까요?
업데이트 : 대부분의 참여자가 지적했듯이, 비즈니스 코드에서 GUI 코드를 분리하는 엄지 손가락의 규칙입니다,하지만 난 여전히 NO GUI가을 포함하더라도이 작업을 수행하는 방법을 알고에 관심이 있어요 (즉, 배치 모드에서 실행될 때 실행하지 않는 코드의 GUI 관련 부분을 "말씀"하는 가장 편리한 가장 좋은 방법은 방법은 무엇 예를 들어 두 개의 서로 다른 환경에서 서로 다른 두 가지 BATCH 모드)
완벽! 이미 어떻게 든 (ShowPanels 메서드는 실제로 이벤트를 발생시킵니다.)하지만 일괄 처리 모드에서 해당 이벤트를 구독하지 않을 때 어떤 이유로 NullPointer 예외가 발생하여 해당 옵션의 유효성을 의심하게되었습니다. 내 코드를 더 자세히 점검 할 것이다. –
전화하기 전에 null 이벤트를 확인하십시오. – n8wrl
이것은 정확히 제가 제안하려고 생각한 것입니다. – mlibby