2011-12-21 8 views
0

저는 Windows Forms 및 그래픽 사용자 인터페이스에 익숙해지는 프로젝트를 만들고 있습니다.Windows Forms의 다형성

나는 CONSOLE에서 다형성을 사용하는 자동차 국을 위해이 프로그램을 만들었습니다. 그래서 택시를 입력하면 개인 차량이 아닌 산업 차량의 기본 클래스를 호출합니다.

프로그램이 콘솔에서 제대로 작동합니다.

하지만 그래픽 인터페이스를 통해 구현할 수 있는지 궁금합니다. 나는 단지 차량의 종류와 버튼을 가질 수있는 다음, 그 특정 유형의 차량에 대한 데이터를 입력 할 수있는 새로운 형식을 열어 놓을 수 있음을 안다. 그러나 그것은 다형성이 아닐 것입니다 ...

다형성으로 수행 할 수있는 프로젝트 유형입니까? 및 GUI 또는 아니오?

+1

그것을 할 수없는 이유를. 당신이하고자하는 것에 대해 좀 더 자세한 내용이나 코드를 제공해야 할 수도 있습니다. – CoderDennis

+0

추상 클래스 사용에 대해 묻고 있습니까? http://msdn.microsoft.com/en-us/library/sf985hc5(v=vs.71).aspx CONSOLE에서 다형성을 사용하도록 만든 코드를 붙여 넣을 수 있습니까? –

+0

일반적으로 각 모델에 대한보기가 좋은 방법입니다. 모델의 관련 부분에 대한 다른 하위 뷰 (예 : 제조업체 정보보기)를 사용하면 상속 *이 아닌 뷰의 합성 ***이 가능합니다. –

답변

1

내가 언급 한 것처럼 기본 클래스를 처리하는 하나의 양식 만 만들어지면 더 많은 돈을 벌 수 있다고 생각합니다. 하지만 파생 클래스에서 필요에 따라 표시 항목을 설정하거나 해제 할 수 있습니다. GUI는 다형성 일 필요는 없으며 단지 데이터의 다형성을 처리해야합니다. HTH

1

달성하고자하는 것에 대해 좀 더 구체적으로 설명해야합니다. 원하는 경우 다형성을 대부분의 문제에 적용 할 수 있습니다. 좋은 기술 여부는 다양하며 사용 방법에 따라 매우 다릅니다. 객체 계층 구조가 초기에 작동하는 방법에 대한 아이디어를 얻는 것 같습니다. 그러나 은 시작하지 말고을 시작하십시오. 대신 응용 프로그램을 지정하십시오. 이고 어떻게 처리해야하며 객체를 디자인해야합니다. 그 모델. 예를 들어 택시를 표현하는 방법에 대한 아이디어가 실제로 유용하지 않음이 드러날 수 있습니다.

1

사용하도록 선택한 사용자 인터페이스에 관계없이 개체 지향 응용 프로그램에서 다형성을 활용할 수있는 이유가 없습니다. 시나리오에서는 목록보기에서 기본 클래스에 대한 참조 만 사용한 다음 개체의 특정 유형에 적합한 적절한 상세 뷰를 열어 두는 것이 좋습니다.

또한 WPF를 사용하는 것이 좋습니다. 아주 좋은 이유가없는 한 Windows Forms를 배우는 데는 아무 쓸모가 없습니다.

+0

WPF를 사용하면 데이터 유형에 맞는 템플릿을 사용하여 멋진 작업을 수행 할 수 있으며 재사용 공통 요소를 사용할 수도 있습니다. 이는 일부 문제를 해결하는 것으로 보입니다 – Murph

+0

Windows Forms가 좋지 않은 이유는 무엇입니까? – user1050632

+0

@ Murph가 말했듯이 WPF는 실제로 DataTemplates를 사용하여 이러한 상황을 도울 수 있습니다. 주로 Windows Forms는 Windows 응용 프로그램을 만드는 오래된 방법이며, WPF는 새로운 방식입니다. 지금 낡은 방법을 배우는 용도는 없습니다. 물론 WPF가 더 좋습니다. Windows Forms를 사용하기로 결정한 이유는 무엇입니까? –

0

아마도 당신이 찾고있는 것은 (전달되는) 다형성 객체의 유형에 따라 동적으로 GUI를 빌드하는 방법 일 것입니다. 이는 리플렉션을 사용하여 Form에 전달 된 객체에 속성 또는 속성이 있는지 확인하고 각 속성에 대해 자동으로 입력 필드, 텍스트 상자 등을 생성하여 수행 할 수 있습니다.

몇 가지 예를 들어,이 SO 게시물 읽기 :

Dynamic options dialog (using reflection)

관련 문제