2011-09-12 5 views
2

내 응용 프로그램의 기본 양식 코드가 매우 커지고있는 곳에서 (문제가 있습니까?) 문제가 있습니다. 응용 프로그램의 주요 섹션이므로 많은 이벤트 처리기가 있습니다.주요 서식이 상당히 커집니다. 제안?

부분적으로 코드를 구분하는 부분을 사용하고 싶지 않습니다. 왜냐하면 부분적으로 코드를 사용하기를 원하기 때문입니다. 또한 부분 양식 클래스는 디자이너에 표시되지 않으며 일반적으로 혼란 스럽습니다.

솔직히 말해서 무엇을해야할지 모르겠습니다. 이 파일은 약 1,000 줄의 코드이며 다른 모든 클래스는 각각 10-150 줄입니다. 대부분의 이벤트 핸들러가 클래스의 폼 또는 멤버 변수에 대한 컨트롤을 조작하고 이렇게하면 많은 매개 변수 전달 및 혼동이 필요하기 때문에 다른 개체에 동작을 캡슐화 할 수 없습니다.

가능한 조치를 생각하려고 시도합니다. 다른 클래스에 많은 비헤이비어를 캡슐화하고 싶지만 문제는 이벤트 핸들러가 비공개 컨트롤과 멤버 변수를 수정한다는 것입니다. 이 클래스는 어떻게 든이 데이터에 액세스 할 필요가 있지만 클래스의 인스턴스를 클래스에 제공하고 모든 컨트롤 및 멤버 데이터를 public으로 설정하지는 않습니다.>

아이디어가 있습니까?

+0

코드를 단순화하려는 노력에 찬사를 보냅니다. 아래에 게시 된 답변에 동의하지만, 단지 1000 개의 코드가 실제로 많은 코드가 아니라는 점을 지적해야합니다. WinForms 프로젝트를 많이 보았습니다. * 전체 앱의 모든 코드는 동일한 양식 클래스에 있습니다. 대조적으로 작고 잘 정리 된 클래스조차도 복잡한 작업을 수행하는 경우 1000 줄을 초과 할 수 있습니다. –

답변

6
  1. 사용자 컨트롤로 나눕니다.
  2. 프레젠테이션과 관련이없는 내용이 양식에 없는지 확인하십시오 (사용자에게 표시, 사용자 입력 컬렉션). 모든 데이터 액세스를 별도의 클래스로 이동하고 비즈니스 로직에서도 동일하게 수행하십시오.
2

일반적으로 Form의 일부를 UserControls로 캡슐화하여 내부 이벤트/컨트롤을 관리합니다. UserControl은 Main 폼에서 적절한 데이터를 전달하거나 인스턴스화 할 수 있습니다.

관련 문제