2011-06-12 2 views
0

예제를 쉽게 만들기 위해 Actionscript 클래스를 Person이라고합니다. 나는 DataGridPerson의 이름, 생일 등과 같은 항목이 표시되는 개체를 채우고 싶습니다. 멋지고 간단하지만 모두 DataGrid의 특정 사람들을 선택하는 확인란 열을 추가하고 싶습니다. 사용 사례의 예는 다음과 같습니다.Flex CheckBox ItemRenderer가 객체에 묶여 있지 않습니까?

  1. 모든 사용자를 표시합니다.
  2. 사용자는 각 개인 옆에있는 상자에서 해당 선택에 대해 취해진 조치를 원한다는 것을 확인합니다.
  3. 사용자가 단추를 클릭 할 때 사용자 선택에 대한 일부 동작이 수행됩니다. 그것은이에 대한 공통의 해결책처럼 보인다

Person 객체의 Selected 속성을 확인하는 것입니다,하지만 그건 정말 나를 위해 좋은 옵션이 아닙니다. Person 개체는 응용 프로그램 전체에서 사용되며 클래스의 실제 관심이없는 Selected 속성을 갖는 것은 매우 부정합니다.

Person과 같은 하드 클래스가있는 유형의 보안을 좋아하지만이 겉으로보기에 간단한 문제를 해결하는 방법을 모르므로 개체를 반복하여 선택 여부를 결정할 수 있습니다. 이 작업을 수행하는 방법에 대한 정보는 무엇입니까? 미리 감사드립니다.

답변

0

나는 이미 답이 있다고 생각 :

그것은이 각 Person 객체 선택된 속성을 확인하는 것입니다 에 대한 공통의 해결책처럼 보인다,하지만 그건 정말에 대한 좋은 선택지가 아니다 나를. Person 개체가 응용 프로그램에서 사용되었습니다. 은 클래스의 관심사가 아닌 인 Selected 속성을 갖고 있다는 것은 매우 부정합니다.

"개인 오브젝트"의 목적은 하나의 단일 엔티티 (개인)에 대한 상태를 보유하는 것입니다. 이 경우 '선택'은 앱과 관련하여 해당 사용자의 '상태'와 관련되기 때문에 추가 할 수있는 값입니다.

다른 방법으로 생각할 수 있습니다. 그러나 그것들은 모두이 경우 불필요하다고 느끼는 복잡성을 추가합니다.

+0

나는 동의하지 않습니다. 나는'선택된 (Selected)'이'Person' 객체의 상태보다 UI에 대한 관심사라고 생각한다. 두 개의 DataGrid를 표시하기 위해 하나의 화면이 필요하다면, 각각 다른 사람들이 같은 목록으로 채워지지만 다른 이유로 선택하면 어떨까요? 하나의 그리드의 'Selected'는 다른 하나와 동일하지 않습니다. – Ocelot20

+0

"selected"는 객체의 UI 상태의 일부이며 실제 "UI-Persistent"객체의 일부로 해당 값을 저장하는 것이 완벽하게 수용 가능하다고 생각합니다. 같은 목적으로 다른 데이터를 사용하는 그리드가 여러 개있는 경우 여러 속성을 사용합니다. grid1Selected 및 grid2Selected입니다. 그 접근법은 여전히 ​​나에게 단순 해 보인다. 여러분이 Object Mediator를 사용하여 그러한 값을 유지하는 접근법을 생각해 낼 수 있다고 생각합니다. 그러나 그것은 나에게 잔인한 것처럼 보입니다. – JeffryHouser

+0

우려의 분리 문제입니다. 객체 자체가 선택되어 있는지를 알 필요가 없으며 UI 만 수행합니다. 이 비즈니스 객체가 많은 장소에서 사용된다면, 그것을 사용하는 모든 UI 구성 요소가 비즈니스 로직 도메인의 자체 속성이라고 주장하면 매우 빠르게 처리하기가 어려울 것입니다. 그것은 'Person.Width'와 같은 것들의 경로를 이끌어가는 미끄러운 경사입니다.물론하기는 쉽지만, 훌륭한 코딩 방법을 따르는 깨끗한 대안이 있기를 바랬습니다. – Ocelot20

관련 문제