2011-04-13 4 views
2

이전에는 데스크톱 응용 프로그램을 설계하는 동안 서로 다른 창과 서로 통신 할 수있는 깨끗한 방법을 찾기가 어려웠습니다.간단한 데스크톱 GUI 아키텍처

예 : 기본 창 동작을 수정하는 설정/옵션 대화 상자 창.

내 "메인"을 만들겠습니까 (예 : 한 번에 하나의 창 인스턴스 만 표시해야하는지) 싱글 톤은 좋은 아이디어입니까? 어쨌든 한 번에 하나만 있어야하기 때문에?

이렇게하면 별도의 창을 쉽게 사용할 수 있고 더 깨끗하게 정리할 수 있습니다.

위의 내용이 참이라면 깨끗한 인터페이스를위한 Facade-like 메소드를 다른 윈도우에 추가 할 수 있습니다.

예 : MainWindow.setFont (Font f);

입력 해 주셔서 감사합니다.

+0

두 창 중 어느 창에서 다른 창을 알고 있습니까? 즉. 예를 들어, 설정 창을 보여줄 책임이있는 메인 윈도우의 코드는 무엇입니까? –

+0

Windows가 통신 할 수 있도록 Application 개체를 싱글 톤으로 사용하는 것을 고려 했습니까? – 9000

+0

@ 9000. 네, 있어요. 그러나 이것은 조금 더 단정하고 확장 가능하게 보였다. –

답변

3

마틴 파울러 (Martin Fowler)의 GUI Architectures은 다양한 디자인 패턴을 다루고 있습니다. 예를 들어 Observer Synchronization 패턴이 참조 된 문맥의 컨텍스트에서 작동 할 수 있습니다.

할 수 있으면 자신의 글을 작성하는 것이 어려운 작업 일 수 있으므로 잘 알려진 프레임 워크를 사용하는 것이 좋습니다.

+0

제안 해 주셔서 감사합니다. 전체 프레임 워크를 설계하려고하는 것이 아니라 내 GUI를 구성하는 좋은 방법입니다 ... –

0

이것은 Qt가 옳은 것 중 하나입니다. 당신이 창문에 의사 소통을하고 싶다면 신호를 보내라. 그러면 창문이 신호를 받는지 아닌지를 처리 ​​할 수있다. 송신자는 그것이 존재하더라도 상관 할 필요가 없다.

+0

OpenCV 질문에 답하는 것이 좌절합니까? 드물게 ppl upvote 그리고 거의 결코 응답은 응답을 받아들이 기 위하여 돌아온다. – karlphillip

+0

@karlphillip - 문제는 openCV의 '공식'목록이 끔찍한 야후 그룹 사이트라는 것입니다. 고급 opencv 사용자는 아무 것도 없습니다 –

관련 문제