내가 어떻게 디자인하고 있는지 알고 싶습니다. Qooxdoo 코드 코드.Qooxdoo Desktop Design 모범 사례
내가 만족하는 올바른 아키텍처를 얻지 못했습니다.
서비스와 같은 논리로보기를 캡슐화하기가 어렵습니다.
다른 사람들이 패턴이나 좋은 해결책을 찾기 위해 나에게 힌트를 줄 수 있기를 바랍니다.
내가 어떻게 디자인하고 있는지 알고 싶습니다. Qooxdoo 코드 코드.Qooxdoo Desktop Design 모범 사례
내가 만족하는 올바른 아키텍처를 얻지 못했습니다.
서비스와 같은 논리로보기를 캡슐화하기가 어렵습니다.
다른 사람들이 패턴이나 좋은 해결책을 찾기 위해 나에게 힌트를 줄 수 있기를 바랍니다.
Qooxdoo의 가장 큰 기능 중 하나는 강력한 OO 클래스 시스템이므로 Qooxdoo의 OO 시스템이 원하는 패턴을 구현하는 도구를 제공하기 때문에 MVC, MVVC 등이 모두 가능합니다. 에스).
특히 큰 응용 프로그램을 만드는 데 매우 유용한 한 가지 패턴은 모델 편집을위한 사용자 정의 위젯을 정의하는 것입니다. 당신이 모델이있는 경우 예를 들어, 코드를 캡슐화하기 때문에 등 CustomerEditor
위한 위젯, InvoiceEditor
, InvoiceLineEditor
를 갖는 Customer
, Invoice
, InvoiceLine
및 Address
위해 먼저 정말 유용 (일명 등 "비즈니스 오브젝트")뿐만 아니라, 그것을 지원하기 때문에 바인딩.
바인딩은 Qooxdoo의 매우 강력한 기능입니다. 왜 그런지 알아보십시오. 편집 위젯 각각에 편집 대상인 value
이라는 속성이 있다고 가정 해 봅시다. 간단한 바인딩에서
은 자동으로 qx.ui.form.TextField
의 몇 가지에있는 화면 위젯에 대한 모델의 특성을 결합하고 그 속성을 편집 할 수 있습니다 편집기, 예를 들어 CustomerEditor
바인드 value.firstName
및 value.lastName
과로 변경 고객의 firstName
또는 lastName
는에 업데이트됩니다 2 개의 TextField. 바인딩은 다른 방법으로도 작동 할 수 있으므로 TextField의 변경 사항이 모델에 다시 복사됩니다.
컨트롤러 클래스는 qx.data.controller.Form
이며이 작업을 단순화하고 선택적으로 사용자 값 및 사용자 피드백의 유효성 검사를 통합 할 수 있습니다. 별도의 편집기 위젯이있는 경우
, 당신은 또한 그들에게 바인딩 할 수 있습니다 - Customer
가 AddressEditor
의 인스턴스에 value.address
을 결합 할 수, 예를 들어, 및 InvoiceEditor
현재 선택된 결합 할 수 InvoiceLine
InvoiceLineEditor
에 등