리팩토링이 필요한 프로젝트가 있습니다. 약 40 개의 GUI 구성 요소가있는 Java 데스크탑 SWT/JFace 응용 프로그램으로 주요 구성 요소는 사소한 구성 요소의 수명주기를 제어합니다. 낮은 커플 링으로 좋은 모듈 형 디자인을 만들고 싶지만 매우 긴 생성자가 없어도 전역 상태를 피할 수있는 방법을 찾을 수 없습니다.난장판 생성자없이 전체 상태를 피하기
예를 들어, 소프트웨어의 국제화에 대한 현재의 접근 방식은 같은 : 코드베이스가 성장함에 따라 열심히 종속성을 분석 할 수 있습니다 (데이터 모델) 코드를 사용 싱글에서
public class Main {
public static void main(String[] args) {
MyMessages.loadMessages();
}
}
public class MyMessages {
private static ResourceBundle messages;
public static void loadMessages() {
messagesBundle = ResourceBundle.getBundle("messages", "en");
}
public static void getMessage(String m) {
return messagesBundle.getString(m);
}
}
public class SomeComponent extends Component() {
public void init() {
String textboxLabel = MyMessages.getMessage("someMessage");
}
}
다른 장소, .
대체 접근법은 MyMessages
을 상태 저장하고 GUI 구성 요소의 계층 구조를 통해 인스턴스를 전달하는 것입니다. 나에게 이것은 지저분하고, 오류가 발생하기 쉬우 며, 인식 된 이익과 비교할 때 번거롭지 않다.
- 은 본질적으로 전역 변수 무엇에 의존하지 않는다 : 다른 방법이 무엇
가있는 방식으로이를 설계한다.
- 종속 관계를 명시 적으로 지정합니다.
- 긴 생성자가있는 코드를 복잡하게 만들지 않습니다.
종속성 주입 프레임 워크를 고려해야합니까, 아니면 작은 데스크톱 응용 프로그램에 과도하게 사용되지 않는 다른 접근법이 있습니까?
RealBundle을 주입하는 편이 좋을 것입니다. 실제 앱에는 기본 레이블 외에 툴팁 등이 있기 때문입니다. – user949300