Avatar billede c-sharp Nybegynder
06. juli 2004 - 12:46 Der er 9 kommentarer og
1 løsning

Placering af metoder der skal bruges på flere sider

Jeg har nogen metoder jeg skal bruge på flere sider, men hvordan implementere jeg disse på den pæneste måde?

Skal jeg bruge nedarvning, Aggregering , statiske metoder eller noget helt andet?
Avatar billede prec Nybegynder
06. juli 2004 - 14:02 #1
Jeg plejer normalt at ligge en static method i Global.asax.
Avatar billede c-sharp Nybegynder
06. juli 2004 - 14:10 #2
Bruger dette ikke unødvendige ressourcer?
Avatar billede 2c Nybegynder
06. juli 2004 - 15:22 #3
Kan du ikke bare lave en normal klasse, og så give den samme namespace som dine andre sider ?
Avatar billede c-sharp Nybegynder
06. juli 2004 - 15:41 #4
Dvs. lave en aggregering?
Avatar billede 2c Nybegynder
06. juli 2004 - 16:02 #5
Jeg ved ikke lige hvad det hedder.

Men hvis du fx bruger C#, kan du oprette en new class i dit namespace. Opret nogen funktioner i den. Disse funktioner kan så kaldes fra alle dine sider. Du må selvom om du vil lave dine funktioner statiske, eller om du vil oprette et objekt af klassen hver gang du vil bruge dem eller noget helt andet.

Jeg må dog indrømme det bare var sådan jeg selv gjorde da jeg arbejde med .Net. Jeg ved ikke om det er den pæneste måde at gøre det på.
Avatar billede c-sharp Nybegynder
27. august 2004 - 10:23 #6
Jeg ved godt hvilke muligheder der findes, men ud fra objekt orintered programering kigger man jo meget på "kobling" og forsøger at have de svagest koblinger i sit design. Det var derfor jeg spurgt :-)
Avatar billede snepnet Nybegynder
01. september 2004 - 21:29 #7
hej c-sharp :o)
jeg synes det er stærkt afhængigt af hvad det er for en form for metoder der er tale om.... løs kobling er ikke det eneste (og ofte heller ikke det rigtigste) mål.

der kan være situationer hvor arv synes mest hensigtsmæssigt, og andre hvor interfaces synes bedre, men der er også masser af situationer hvor navnegenbrug er at foretrække.

hvis du (for at tage et eksisterende eksemel) ønsker at lave en metode der returnerer en tekstrepræsentation af et givent objekt (ToString()) ser arv ud til at gå ganske godt, men hvis du ønsker at en programmør skal kunne lave en "lækker" iteration over collections synes et interface at fungere (IEnumerable).

eksempler på navnegenbrug er der også masser af i .NET, og man kommer hurtigt ud i dem selv.

laver du f.eks. din egen samling customiserede kontroller. er det tænkeligt at du ville have lyst til at lægge en .ExtraMethod() ind, og da du ikke kan arve fra flere klasser, og heller ikke har lyst til at lave en ny implementering af alle standardkontroller - kunne du vælge at genbruge navnet ExtraMethod() på specialiseringer af teksbokse, dropdownlister, radiobuttons mv...

aggregering er en fuldstændig naturlig ting, man ikke skal forsøge at undgå (OOP giver sådan set ikke nogen mening uden :o), men jeg er enig i, at det er en god idé at forsøge at begrænse sine koblingspunkter, men det må ikke blive på bekostning af de enkelte klassers integritet/genkendelighed/samhørighed... (det engelske ord man plejer at bruge er cohesion).

Såh.... hvis du smider et par eksempler herud, skal jeg nok give et bud på hvordan jeg selv ville gøre det.

mvh
Avatar billede snepnet Nybegynder
15. september 2004 - 08:06 #8
c-sharp... har du glemt den her ?
mvh
Avatar billede c-sharp Nybegynder
15. september 2004 - 08:26 #9
Jep den havde jeg glemt alt om, sorry! :0)

snepnet smid et svar så er der point og tak for hjælpen for din fine redegørelse!
Avatar billede snepnet Nybegynder
15. september 2004 - 08:41 #10
det var så lidt c-sharp :o)
mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester