일반적으로 프런트 엔드 코드를 비즈니스 논리 계층에 연결하여 컨트롤의 사용/사용 안 함을 제어하는 논리가되도록하는 것이 좋습니다. 가능한 경우 함께 사용할 수없는 항목을 기준으로 컨트롤을 그룹화 한 다음 한 번에 모두 사용할 수 없도록 설정하는 루틴을 만들고 disableAddContactInfoArea()
또는 SetAddContactInfoArea(boolean isEnabled)
과 같은 이름을 지정합니다. 내 생각에 루틴은 frmMain.vb
에 앉을 것입니다. 피할 수있는 한 가지 방법은 각 개별 컨트롤을 다른 클래스에 노출하는 것입니다 (특정 비즈니스 프로세스에 필요한 것이 전부가 아니라면). 그런 다음에도 나중에 루틴을 작성하여 나중에 편집하도록해야합니다 쉽고 덜 복잡한). 가장 중요한 목표는 복잡성을 관리하는 것입니다 (Steve McConnell의 책 Code complete을 확인하십시오. 7 장 참조).
이상적인 수행해야 정확히 무엇을 할 단지 거기의 frmMain.vb
에 몇 public Sub
의를하는 것입니다, 다음, 비즈니스 로직 계층 전화를 사용하는 frmMain
의 instace에 그 루틴을 가지고있다.
컨트롤이 폼에 있고 숨기고 표시 할 수있는 콤보 상자도 폼에 있으면 폼에 표시하거나 숨기는 것이 왜 나쁜 습관입니까? 사용자 입력없이 검색되어 비즈니스 로직을 처리하고 컨트롤을 표시하거나 숨기지 않는 한 컨트롤이있는 폼에서 다른 클래스 나 라이브러리로 이동하여 코드를 더 복잡하게 만들 필요가 없습니다. 그 클래스가 폼에 컨트롤을 만들고 있다면 새로운 클래스로 쇼/숨기기 코드를 옮길 곳을 생각할 수있는 유일한 다른 인스턴스입니다. –