30. november 2007 - 18:37Der er
10 kommentarer og 1 løsning
Opdel GUI i flere component grupper
Hej Eksperter
Jeg er ved at lave en GUI. Jeg bruger Visual Studio 2005 pro til dette, så det er for det meste drag and drop. Men jeg har under min konstruktion opdaget at et af mine komponenter som er i GUI'en (Et træ), er smartere at have i en klasse for sig, grundet der skal en del kodning under denne. Hvorledes kan jeg oprette min klasse så træet er for sig, og resten for sig selv?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Composit pattern egner sig glimrende til at holde styr på GUI komponenter. Du kan lave lige saa mange gruperinger som du vil. Når du saa siger at det ene classe indeholder en masse kode går jeg ud fra du mener at den har flere metoder end resten af gui klasserne fordi den har en ekstra funktionaliteter. Hvis det er korrekt saa ændre din datastruktur (composite eller hvad du nu måtte bruge) ikke på problemet. Generalt vil du have en uni-form tilgang til dine tine elementer. Er der saa nogen som kræver ekstra funktionalitet kan du bruge en visitor til at udføre de ekstra metoder. Visitoren 'stjæler' et eksisterende objekt og vidrebygger på et eksisterende objekt. På den måde undgår du at skulle ændre på hele din gui struktur og dens tilgang.
Hvis jeg har forstået dig rigtigt er ovenstående værd at tænkte over.
Jeg ved hvad Composit pattern er. Og jeg kan godt lide dit forslag. Men jeg tror det er overkill til dette projekt.
Jeg ved ikke om jeg har forklaret mig korrekt så jeg prøver lige en detaljeret forklaring :) :
Det jeg har indtil videre er en GUI, med 3 (split) paneler. En lodret til venstre, og 2 til højre der ligger henholdvis i toppen og bunden. Jeg vil placere et TreeView i panelet til venstre. Jeg kunne sagtens ligge alt GUI kode i den samme klasse. Men jeg tror jeg får meget kode kun til træet, så jeg vil gerne oprette TreeView'et i en anden klasse, og så få det vist i GUI'en. Dvs, inplementere den i GUI klassen i det venstre panel. Alle mine forsøg på at gøre dette indtil videre er mislykkedes. Det er der mit problem ligger. Og det er også det eneste GUI komponent der skal væk fra selve hoved GUI klassen. Hvis det gir mening. :)
Opret en ny klasse (i sin egen cs-fil). Denne skal nedarve fra den træklasse som du har indsat i formen lige nu. Flyt derefter al din special-kode over i den nye klasse. Tilret så din eksisterende form-kode til at indsætte din egen specialicerede træ ind i stedet for det konventionelle træ.
Ahh - Jeg har ikke afprøvet ideen endnu. Jeg er dog igang. Regner med at bruge ideen når der er noget at tage fat i. Så indtil da, kan jeg ikke give noget respons. Men jeg tror det er vejen at gå.
Okay, jeg har leget lidt med ideen, og så taget en anden indgang vinkel på problemet. Jeg har valgt at lade treeViewet ligge i min gui klasse, da det er nemmere at arbejde med det. Jeg har så taget alt koden og lagt i andre klasse, hvor det gav mening.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.