2011-09-21 2 views
3

모바일 웹 응용 프로그램을 개발할 예정입니다. 응용 프로그램은 백 엔드 데이터에 웹 서비스를 사용합니다. 모든 프리젠 테이션 및 비즈니스 로직은 자바 스크립트로 작성해야합니다.누구나 JavaScript로 비즈니스 로직과 프리젠 테이션 로직을 분리하는 디자인 패턴을 제안 할 수 있습니까?

ios 및 Android에서 다른 디자인이 있습니다.

둘 다 비즈니스 로직을 별도로 다시 작성하고 싶지는 않습니다.

누구나 JavaScript에서 비즈니스 로직과 프리젠 테이션 로직을 분리하는 디자인 패턴을 제안 할 수 있습니까?

답변

2

좋은 디자인 패턴은 응용 프로그램이 작동하는 데이터를 저장, 검색 및 수정하기위한 "REST-ful"API를 설계하는 것입니다. 그런 다음이 공통 API를 공유하는 별도의 사용자 인터페이스를 설계하십시오. 코드를 작성할 때 사용자 인터페이스에서 데이터가 표시되거나 제어되는 방식을 나타내는 데 사용되는 프로토 타입의 데이터를 나타내고 조작하기 위해 별도의 프로토 타입과 함수를 사용하십시오.

CSS를 사용하여 iOS 및 Android에서 응용 프로그램의 모양을 제어하면서 두 가지 응용 프로그램 버전에서 동일한 HTML DOM 구조를 계속 사용하여 재사용을 달성 할 수도 있습니다. 즉, 클래스를 기반으로 스타일을 적용하기 위해 CSS를 사용하여 명시 적으로 "스타일"속성을 수정하는 대신 DOM 요소의 "클래스"속성을 조작하여 더 많은 재사용 성을 얻을 수 있습니다. 그런 다음 대부분의 경우 동일한 JavaScript 코드를 사용하지 않고 다른 사용자 에이전트에 다른 버전의 CSS를 제공하면됩니다. 추가적인 차이가 나타날 수 있습니다. 그들이 보여 주듯이 그것들을 자신의 기능으로 리팩토링 할 것을 제안합니다.

다른 사람들도 지적했듯이 모바일 장치 용 뷰 로직을 이미 추상화 한 수많은 기존 JavaScript 프레임 워크 (예 : Sencha Touch)가 있으므로 모델 및 컨트롤 부분을 작성할 수 있습니다. UI 구성 요소에 대한 추상화가있는 경우 유지해야 할 유일한 구분은 모델과 컨트롤러 사이의 분리입니다.

+0

데이터 액세스는 Restful api에서 수행합니다. 프레젠테이션 레이어에서 html도 변경해야합니다. CSS 변경만으로는 충분하지 않습니다. – yogs

1

backbone.js을 살펴보세요. 풍부한 자바 스크립트 애플리케이션을위한 뛰어난 MVC 프레임 워크입니다.

0

iOS, Android 및 태블릿을 분리 할 수 ​​있으므로 Sencha Touch을 사용하고 있습니다. 게다가 REST-ful과 JSONP를 지원하여 원하는대로 할 수 있습니다.

0

Sencha Touch 내가 생각하는 최선의 선택입니다. 프리젠 테이션과 bussiness 로직을 분리 할뿐만 아니라 특히 Android, iPhone 및 Blackberry 6 브라우저를 교차시킵니다. sencha touch를 사용하면 phonegap

을 사용하여 모바일 웹 앱을 기본 웹 응용 프로그램에 쉽게 액세스 할 수 있습니다.
관련 문제