2016-12-13 2 views
0

응용 아키텍처와 관련하여 이상한 질문이 있지만 어쩌면 도움을받을 수 있습니다 .--).독립 실행 형 응용 프로그램에서 메시지 지향 통신 - 이해가 되나요?

독립 실행 형 응용 프로그램에서 내부 통신에 메시지를 사용하는 의미가 있습니까?

MVC 또는 PAC 아키텍처 (또는 여러 개의 협력 모듈로 구성된 아키텍처)가있는 단일 응용 프로그램 인 MOM에 대해 말하는 것이 아닙니다. 또한 메시징 시스템은 여기에 정의되어 있지 않습니다. 간단한 메소드 호출 대신 객체를 생성하고 다른 응용 프로그램 모듈로 보낼 수있는 기능이 있다고 가정 할 수 있습니다 (기본적으로 ilights-> lightOn 대신 Message (Message)를 보냅니다). (bool) 함수 호출).

그래서 이러한 응용 프로그램은 여러 개의 모듈이 있다고 가정, 그들 중 일부는 다른 (계층 적 트리)에 따라, 일부 다른 사람들이 지금 계층 등

나무 그리고 질문의 동일한 수준에있다, 그것은이 있는가 인터페이스를 전달하는 대신 모든 종류의 메시징 시스템을 사용하고 필요한 메소드를 호출하기 위해 사용할 수 있습니까?

메시지를 사용하여 한 관점에서 모듈을 분리 할 수 ​​있지만 어떤 모듈을 사용할 수 있습니까? 모듈 트리 맨 위에있는 모듈이나 메시지는 더 깊게 (깊이까지) 이동해야합니까?

메시징 시스템은 간단한 메소드 호출 대신 메시지를 정의하고 핸들러, 디스패처 등을 만들어야하는 보일러 플레이트 코드의 양을 늘려 추가 작업이 필요합니다.

독립형 애플리케이션 내부에 황금색의 의미가 있거나 그냥 메시지를 사용하는 것이 완전히 무의미한가요?

+0

를 호출보다 쉽게 ​​메시지를 기록 할 수있는 중앙 위치에 그것을 할 수 있습니다하게 멀티 스레딩을 추가 용이 그는 "지금 당장이 작업을 수행해야합니까?"라는 질문에 대한 대답은 단순성과 유지 보수성이 가장 중요한 설계 원칙입니다. –

+0

@TMcKeown 따라야 할 다른 여러 원칙이 있습니다. 중요한지 여부는 요구 사항과 관련된 질문입니다. 일부 프로젝트는 유지 보수에 신경 쓰지 않습니다. – PsiX

답변

1

확실한 답변은 없습니다. 이러한 모든 질문은 요구 사항의 관점에서 분석되어야합니다.

중요한 (또는없는) 언급 한 분명한 사실 (메시지의 종속성 분리, 직접 메서드 호출의 개발 시간 단축)이 있습니다.

요구 사항을 분석하지 않고 답변은 의견을 기반으로합니다. 예 : 나는 응용 프로그램 내부 메시징 시스템에 대한 여러 가지 이유를 생각할 수 :

  • 추가하고 (같은 기본 클래스 가정) 메시지를 제거하는 강력한입니다 : 바로 디스패처에 핸들러를 추가하거나 이벤트를 추가 새 메시지
  • 를 무시 메시지를 기반으로는
  • 나중에 t 쉽게 (디스패처는
  • 당신은 일반적으로? 기능은 엔지니어링을 통해