[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

UI programmering i C# - ved brug af objekt orienteret metodologi



Da jeg gerne vil lidt videre med mine programmeringsevner - så har jeg
besluttet mig for at gå mere i dybden med objekt orienteret design
(SOLID).

Jeg har en generel forståelse for f.eks. forskellen mellem en
klasse og et objekt, abstrakt klasse vs. interface osv. - men når det
kommer til asynkron kommunikation imellem klasser føler jeg mig lidt
tabt (forklaring følger).


Typisk vil man gerne splitte softwaren op i logiske grupper - dvs. man
splitter softwaren op i selve "motoren" (forretningslaget), UI, model
grupper osv. op i klasser (for såvidt muligt at følge SRP).


Min udfordring kommer til - hvordan får man et objekt til at give
besked til ejer objektet om, at der skal ske et eller andet?


Symbolsk eksempel på envejskald:
------------------------------------------------
ForretningsObjekt  --> OutputAbstrakt.HelloWorld() --> OutputObjekt som
f.eks. udfører System.Console.WriteLine("Hello World! :-")
------------------------------------------------


Men hvad gør man når OutputObjektet resulterer i et input/handling til
ForretningsObjektet? (som f.eks. input fra en bruger UI)


Symbolsk eksempel på tovejskald:
------------------------------------------------
ForretningsObjekt  --> OutputAbstrakt.HentNavn()  --> OutputObjekt
henter input fra brugeren.

OutputObjekt --> trigger ForretningsObjekt.HelloWorldMedNavn(navn) -->
OutputAbstrakt.HelloWorld(navn) --> OutputObjekt resultat vises "Hello
_navn_ in this World"
------------------------------------------------

Hvordan trigger man ForretningsObjekt.HelloWorldMedNavn(navn) fra
OutputObjekt?

Er den mest "korrekte" måde at bruge delegates til at videregive
information om ForretningsObjektets metode til OutputObjektet - eller
er der en helt anden åbenlys måde at gøre det på - som jeg bare ikke
lige umiddelbart kan gennemskue?

Jeg må blankt indrømme at de par små applikationer jeg har lavet (bla.
et lille stregkode system til at indlæse vareforbrug ind i en
PostgreSQL database) alle har forretningslogik i GUI'en (Gtk#). Men jeg
er ikke rigtigt tilfreds med den måde at gøre det på, da det ikke er i
OOP's "ånd" at gøre det sådan.


Henvisninger / kommentarer / direkte forslag modtages gerne.

På forhånd tak
JesperKP


-- 
ordo ab chao!


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2012-09-01, 02:01 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *