2012-09-21 2 views
1

스타일/좋은 코드 질문이 있습니다. "중요한 일이 아니기 때문에 중요하지 않은"것들 중 하나이지만 여전히 커뮤니티의 통찰력을 원합니다. 나는 C#에 있지만 방법론은 어떤 것에도 적용될 수있다. OOP클래스, 타이밍, 프로 시저에 대한 데이터

나는 클래스를 가지고 있으며, 본질적으로 데이터를 담는 컨테이너이다. 10 개의 매개 변수를 전달하는 대신 클래스를 데이터베이스에 전달합니다. 데이터베이스 작성 클래스는 각 데이터 멤버를 해당 SQL 매개 변수에 저장하고 내 데이터베이스에서 저장 프로 시저를 실행합니다.

제 질문은 클래스에 데이터를 수집 할 때 모든 이벤트가 변경 이벤트에 첨부되어 있다는 것입니다. 마찬가지로

private void chkIce_CheckedChanged(object sender, EventArgs e) 
    { 
     CheckBox chk = (CheckBox)sender; 

     if (chk.CheckState == CheckState.Checked) 
      outTruck.setWeather(2, true); 
     else 
      outTruck.setWeather(2, false); 

    } 

private void txtTrailer_TextChanged(object sender, EventArgs e) 
    { 
     TextBox txt = (TextBox)sender; 
     newRecord.TrailerNumber = txt.Text.ToString(); 
    } 

이에 가서 내 클래스의 얼음 값을 설정하는 사용자가 선택하는 내용에 따라 참/거짓. 또는 텍스트를 설정합니다. 꽤 간단하지만 각 컨트롤에는 자체 이벤트가 있기 때문에 약간의 코드 오버 헤드가 있습니다 (또한 보낸 사람 행의 캐스트가 과도 함일 수 있음). 다른 방법은 제출시 모든 데이터를 수집하는 것입니다. 클래스에 모두 넣으십시오. 엔티티 프레임 워크와 ORM이라고하는 다른 것이 있었지만 현재 .NET 3.5 (우리는 시대에 맞음)에 머물러 있습니다. 4.0까지는 적용되지 않습니다. 나는 표준이 있다면 정말 읽지 못했고, 무엇보다 더 선호하는 것 같다. 그래서, 동료 스택 오버 로우 인 ... 당신의 생각은 무엇입니까?

+1

무엇을하고 싶은가요 ?? –

+0

토론하기! 내 수업에 양식 데이터를 가져와야합니다. 나는 옵션 1을 가지고있다. 모든 컨트롤의 onChange는 거기에 넣는다. 2. 제출 버튼으로 데이터를 수집한다. – Bmo

+0

두 번째 옵션이 올바르게 작동합니다. 더 빨리 작동합니다. –

답변

0

게시자가 웹 페이지에있는 것처럼 보이기 때문에 개체를 인스턴스화하는 단추 처리기 기능을 제출하고 각 속성을 해당 UI 요소의 값으로 수동 설정하는 것이 더 쉽다고 생각합니다. 모든 이벤트 핸들러 (선택 사항 변경, 포커스 아웃 등)에서 데이터 설정을 수행하려면 전체 페이지를 다시로드해야합니다. (그럼에도 불구하고 그 포스트 백을 통해 해당 오브젝트를 유지해야 할 것입니다. 지루하고 오류가 발생하기 쉬운 위업입니다.)

데스크톱 프로젝트에서도 모든 UI 요소의 모든 값을 수집하여 개체, 그 제출 버튼의 이벤트 핸들러.

해당 UI 요소의 상태 변경이 개체 자체 이외의 것에 영향을주는 경우 특정 UI 요소에 이벤트 처리기를 구현하려는 것이 좋습니다. 예를 들어, 확인란을 선택하면 사용자가 제출할 수 있는지 여부가 결정될 수 있습니다. 확인을 선택하면 주문 총액이 현재 잔액을 초과 할 수있는 곳에 비용이 많이 드는 기능이 추가 될 수 있습니다. 이 때 제출 단추가 사용 가능한 상태로 유지되거나 사용 불가능 상태로 유지되어야하는지 여부를 확인합니다.

관련 문제