WPF 응용 프로그램에서 클래스 계층 구조에 문제가 발생했습니다. 두 개의 상속 트리가 함께 병합되는 문제 중 하나이며, 다중 상속없이 상속을 원활하게 수행 할 수있는 논리적 인 방법을 찾을 수 없습니다. 이 시스템을 작동 시키거나 디버깅하는 것을 불가능하게하지 않으면 서 누군가가 밝은 아이디어를 가지고 있는지 궁금합니다..NET에서 다중 상속에 대한 좋은 대안은 무엇입니까?
필자는 저급 엔지니어이기 때문에 처음 생각하는 것은 항상 "오!이 클래스 중 일부는 기본 C++로 작성하고 외부에서 참조 할 것입니다! 그런 다음 모든 기존 학교 OO 즐거움! " 당신이 관리 컨트롤에서 상속 할 때 아아,이
이 내 현재의 예상 클래스 다이어그램의 조각 표시 허용 ... 도움이되지 않습니다
____________________________________ _____________________________________
| CustomizableObject | | System.Windows.Controls.UserControl |
|____________________________________| |_____________________________________|
| string XAMLHeader() | ▲
| string XAMLFooter() |◄--┐ |
| CustomizableObject LoadObject() | \ |
| <Possible other implementations> | \ |
|____________________________________| \ |
▲ ▲ \ |
| | \ |
| | \ |
_________________ ______________________ \ _____________________
| SpriteAnimation | | SpriteAnimationFrame | └---| CustomizableControl |
|_________________| |______________________| |_____________________|
▲ ▲
| |
| |
________ _____________
| Sprite | | SpriteFrame |
|________| |_____________|
문제는 아주 분명하다 분리 CustomizableObject 및 CustomizableControl 개체 트리의 --- UserControl을 하나의 트리에 삽입합니다.
클래스에 따라 구현이 다르지 않으므로 CustomizableObject 구현을 파생 클래스로 옮기는 것이 현실적이지 않습니다. 게다가 여러 번 구현하는 것이 정말 혼란 스럽습니다. 따라서 CustomizableObject를 인터페이스로 만들고 싶지는 않습니다. 인터페이스 솔루션은 나에게 전혀 이해가되지 않습니다. (인터페이스는 을 가지지 않습니다.은 솔직히 말해서 제게 많은 감각을주었습니다 ...)
다시 말하면, 누구나 밝은 아이디어가 있습니까? 이건 진짜 피클이야. 인터페이스가 객체 트리가 아닌 객체 트리로 작동하도록하는 방법에 대해 자세히 알고 싶습니다. WPF와 C#을 사용하여 간단한 스프라이트 엔진을 만드는 것입니다. 이것은 C++에서 매우 쉽게 해결할 수 있습니다.하지만 관리 환경에서 이러한 문제를 해결하는 방법을 찾아야합니다. 힘들어 질 때마다 손을 내밀고 Win32로 돌아가는 것이 아닙니다.
+1을 모두 그리기 위해 : – Kamarey
하하, 내 작품을 감상 할 수있어서 기쁩니다. – Giffyguy
이 질문은 stackoverflows Q & A 형식에 잘 맞지 않습니다. "좋은 대안은 무엇인가"는 이미 하나의 정답이 없다고 가정합니다. 다양한 방법과 의견이 있습니다. –