2009-05-07 4 views
0

Ich habe schon viel Programmierung für CLI und das Web gemacht, aber vor kurzem komme ich in die Desktop-GUI-Programmierung.Anfänger-GUI-Frage, Organisation verschiedener "Ansichten"

Die meisten Tutorials für GUI-Programmierung Ich habe nur erklärt, die verschiedenen Steuerelemente, die Sie verwenden können, und lassen Sie es dabei. Einige der Besseren haben auch ein paar Usability-Probleme.

Allerdings ist mein Problem nicht mit den APIs oder der Theorie, sondern mit meinem Code.

Wie sollen Sie verschiedene Ansichten organisieren, die Ihre Anwendung haben könnte (z. B. eine IM-Anwendung hat eine Anmeldeansicht, eine Kontaktlistenansicht, eine Konversationsansicht usw.).

Sollen diese Klassen oder Klassen unterschiedliche Klassen sein? Verschiedene Panels, die versteckt und aufgedeckt werden, oder verschiedene Fenster insgesamt?

Ich hoffe auf Antworten so sprachunabhängig wie möglich, aber falls das nicht möglich ist, sind die Sprachen/Frameworks, die ich in Betracht ziehe, Java/Swing oder C#/WPF. Wenn es jedoch eine andere Sprache/ein anderes Framework gibt, das wesentlich besser zum Lernen ist, würde ich es in Betracht ziehen.

Antwort

0

Normalerweise wird jede Ansicht eine separate Klasse in einer separaten Datei sein. Die Klasse wird dann wahrscheinlich eine Basisklasse wie Window oder Control implementieren.

Soweit Organisation, wenn es eine einfache App ist, legen Sie sie im Stammordner oder in einem UI-Ordner. Oder vielleicht einen Windows-Ordner und einen Controls-Ordner.

Wenn es eine große App mit mehreren Ansichten ist, dann brechen sie in Funktionalität, d. H. Ein IM-Ordner.

0

Ich würde sagen, gehen Sie mit was Joshua gesagt und soweit verschiedene Panels, die versteckt und offenbart sind, habe ich an alten Code gearbeitet und es ist ein Albtraum wieder zu verwenden (8000+ Zeilen von Delphi 6!) kleben Sie so oft wie möglich mit verschiedenen Fenstern!

0

Die allgemein empfohlene Gesamtstruktur des Programms ist der Modell-View-Controller (MVC) Strukturtyp. Also, zunächst einmal, machen Sie nicht die tatsächlichen Daten Teil der Ansichten, es geht in das Modell. Da von nun an die einzigen Daten in jedem Ansichtsfenster fast nur noch Layout-Informationen sind und was bei einer Aktion (Klick, Datenanzeige usw.) zu tun ist, sollten sie, wenn sie unterschiedlich sind, wahrscheinlich unterschiedliche Klassen sein. Wenn es einige allgemeine Funktionen gibt, die ausgeklammert werden können, können Sie dies zu einer Basisklasse machen und von ihr erben, aber am Ende sollten Windows mit unterschiedlichen Funktionalitäten unterschiedliche Klassen sein.

0

Wenn Sie eine der Mainstream-IDEs verwenden, werden einige dieser Arbeiten für Sie erledigt. Der Standardwert ist eine andere Klasse für jedes Formular. Versteckte Panels und Tabbed-Interfaces sind nette Features, aber tun Sie sich einen Gefallen und lernen Sie, wie Sie Gruppen von Controls in Form einbetten. Einige Frameworks ermöglichen es Ihnen, ein Formular direkt in ein anderes zu integrieren. Andere haben spezielle Behälter, die eingebettet werden können.

Der Sinn von diesen ist, Ihre Funktionalität zu zerlegen, damit Sie nicht mit einer aufgeblähten Formularklasse aufkommen, die schwer zu durchwaten ist.

Ich würde auch einige Zeit damit verbringen, einige der Architekturmuster zu betrachten, um Ihre Geschäftslogik getrennt von Ihrer Benutzeroberfläche zu halten. Überprüfen Sie diese link für einen guten Ausgangspunkt.