2016-08-18 4 views
3

에 대한 설계 화면 내가 4 개 단체 있습니다쿠바 플랫폼 : 클래스 계층

사람 (이름, 이메일 등)

  • 대응은 사람 (은행 & 지불 정보 등)을 확장
  • 고객 대응 (할인, CRM 정보 등)
  • 공급자 대응 확장 (공급, 제품 등)
를 확장3210

Counterpart를 제외하고 각각 하나씩 3 개의 스크린이 필요합니다. 여러 가지 디자인 가능성을 망설입니다. 목표는 상위 엔티티에 대한 화면이 이미있는 특정 화면에서 중복 필드를 피하는 것입니다. 예를 들어 Person 용 화면을 디자인 한 경우이 화면을 어린이 엔티티 화면에서 다시 사용하고 싶습니다 (예 : '이름'과 같은 입력란을 복제하지 않음).

나는 다음과 같은 옵션과 함께 제공 :

  1. 아주 잘 내 문제 맞는 것 같다 platfom 화면/XML 상속에 의해 매우 관심이 있지만가 디자인 한, 유일한 플랫폼 화면에 대한 작업을 수행하지 사용자, 슬프게도.

  2. 어떤 방식으로 엔티티 유형을 선택할 수있는 (스마트 한) 화면을 디자인하면 화면에 동적으로 GUI 구성 요소가 추가되어 엔티티의 세부 사항을 처리합니다. 화면은 복잡하고 기본적으로 코드에 의해 관리되며 비주얼 디자인이 아닌 나를 귀찮게합니다 (비주얼 디자이너가있는 이유). 디자인 팁이있는 경우는 예외입니다.

  3. 3 가지 화면을 디자인 할 수 있지만 예전에 시각적으로 설계된 필드 그룹을 재사용 할 수있는 방법이 있습니다.. 코드에서 GUI 구성 요소를 완전히 생성 할 수 있다는 것을 알고 있습니다.

  4. 디자인 3 편집기 화면에서 엔티티 특성을 각각 나타내며이를 결합/포함하는 방법이 있지만이 경우 엔티티 모델을 상속에서 구성으로 변경해야 훨씬 쉽게 만들 수 있습니다.

은 지금 나는 그들이 처리하는 특성이 더 이상 관련이없는 경우 예를 들어, 자신을 무너 프레임을 사용하여, 옵션 2)쪽으로 기울고 있어요,하지만 난 편집기가 특정 바인딩되어 있기 때문에 작동하지 않습니다 두려워 수업.

쿠바 개발자는 숙련 된 개발자에게 어떤 조언을 제공합니까?

+1

플랫폼 개발자는 화면 XML 상속이 플랫폼뿐만 아니라 모든 화면에서 작동한다는 점을 유의해야합니다. 그러나 Studio에서 우리는 의도적으로 코드 재사용을위한 프레임 사용을 장려하기 위해 자체 프로젝트 화면을 확장하는 기능을 제거했습니다 (일종의 "상속을 통한 합성"원칙). XML 상속은 프로젝트에서 액세스 할 수없는 화면을 수정하는 최후의 수단으로 만 생각했습니다. 그러나 향후 Studio 버전에서 심각한 문제가 발생하지 않는다고 판단되면이 제한을 제거 할 것입니다. – knstvk

+0

실제로 수동으로 가능하다고 생각했지만 추천 된 프레임 방식으로 이동합니다. – Mike

답변

5

잠재적으로 재사용 할 수있는 컨트롤러 논리의 양에 따라 다릅니다. 코드 재사용을 위해 코드 구조를 복잡하게 만드는 데 정말로 효과가 있습니까? 적어도 재사용을 위해 복잡한 유효성 검사/동적 모양 논리가있는 적어도 10 개의 공통 필드가 있어야한다고 생각합니다.

프레임이 있습니다. 레이아웃과 관련 로직의 재사용 가능한 부분을 프레임으로 추출한 다음 엔티티 편집기에 프레임을 삽입합니다.

프레임을 사용하면 모든 대량 화면을 작고 관리하기 쉬운 부분으로 분해 할 수 있습니다.

또한 필드 검증기, 사용자 정의 필드 생성기, 테이블 스타일 공급자, 형식 지정자 등이 중요하지 않은 논리를 포함하여 상위 수준 클래스로 추출 될 수 있습니다. 따라서 전체 프로젝트에서 재사용 할 수 있습니다.