2011-08-15 2 views
1

서비스 사용에 익숙하고 비즈니스 계층과 상호 작용할 수 있도록 제공되는 간결한 호출을 통해이 접근 방식을 사용자 인터페이스에 적용 할 수 있는지 궁금해했습니다.사용자 인터페이스 논리를 일종의 UIService로 그룹화 하시겠습니까?

예를 들어, Swing 응용 프로그램에서 종종 다른 동작을 처리 할 수있는 약간의 논리를 추가합니다. 이것이 인터페이스에 대해 프로그래밍 된 경우 실제 처리를 프레젠테이션과 분리하고 코드를 더 명확하게 읽을 수 있습니다.

이렇게 추가 레이어를 적용 할 수 있습니까? MVC가 UI에 가장 자주 적용된다는 것을 알면 컨트롤러의 아이디어로 흥미로운 병렬이 만들어 질 수 있습니다.

+1

논리를 어디에 추가합니까? Swing은 이미 인터페이스 (예 : EventListeners)를 많이 사용하고 있습니다. 하나의 Facade에 이들을 쉽게 추가하여 특정 도메인의 모든 작업을 처리 할 수 ​​있습니다. 또는 매우 높은 수준의 서비스를 해당 청취자에게 주입합니다. 그러나 매우 구체적인 서비스가 많이 필요한 것처럼 들리지만, 도메인에 도움이되는지 모르겠습니다. –

+0

응용 프로그램 논리 자체는 도메인 서비스 클래스에서 찾을 수 있습니다. 여기에 언급 된 로직은 서비스 도메인 계층으로 호출을 전달하는 UI에만 해당됩니다. 현재 내가하는 일은 처리 코드를 구성 요소 (지저분한) 안에 두거나 AsbtractAction 클래스 내부에서 추출하는 것입니다. –

+0

(계속) 코드를 남겨 두는 문제점은이 [MVC 구현]과 같이 처리와 표현 사이에 명확한 구분이 없다는 것입니다 (http://www.emilmont.net/doku.php?id=java:design_patterns : model_view_controller). 내가 추가 레이어를 생각해내는 이유는 일부 아키텍처에는 다른 유형의 레이어 (응용 프로그램, 인프라 ...)가 있으며이 레이어는 서비스 도메인 레이어 위에 놓일 수 있다는 것입니다. 아이디어는 구현을 추출하여 나 또는 다른 개발자가 코드를 교환/향상시킬 수 있도록하는 것입니다. 어떤 종류의 외관이 확실히 들어 맞을 것입니다. –

답변

1

Apache Wicket에는 html GUI가 매우 명확합니다. 대부분의 구성 요소에는 자체 구성 요소 모델이 있습니다. 실제로 이것은 각 구성 요소에 대해 많은 작은 컨트롤러를 생성하므로 내가 본 대부분의 다른 구조보다 관리하기가 훨씬 쉽습니다. 새로운 레이어에 대한 당신의 아이디어는 꽤 비슷한 생각입니다.

+0

링크를 제공해 주셔서 감사합니다. 오해 할 수도 있지만 많은 컨트롤러에 대한 언급은 HMVC를 생각 나게합니다 (이 다이어그램 참조) (http://techportal.ibuildings.com/2010/02/22/scaling-web-applications-with-hmvc/). 아이디어는이 [Javaworld 기사] (http://www.javaworld.com/javaworld/jw-07-2000/jw-0721-hmvc.html)에서 논의됩니다 (누군가가 소스를 찾으면 알려주십시오). 그것 밖으로 :) –

+1

@ James Poulson 당신이 거기서 공유 한 아주 좋은 기사! 나는 HMVC를 더 이상 기억하지 못했습니다. 내가 만난 지난 번에는 C# 프로젝트를 조사하여 WPF 기반 구성 요소에 윈도우 폼 구성 요소를 교환하는 간단한 배경이있는 곳을 조사했습니다. 개인적으로 나는 웹 프로젝트를 위해 쓰레기라고 생각한다. 나는 그 의미론의 재 설계없이 페이지의 재 설계를 한 번도 경험하지 못했기 때문에 컨트롤러는 항상 같은 방식으로 영향을받습니다. 대신 나는 가장 위에있는 얇은 프리젠 테이션 레이어를 좋아한다. 그게 당신 생각 인 것 같습니다. 내 생각에 개찰은이 일을 아주 잘합니다. – Omnaest

관련 문제