Avatar billede bdef Novice
02. maj 2013 - 14:14 Der er 4 kommentarer og
1 løsning

Bindinger i software

Nu har jeg arbejdet med software i lang tid, men et begreb fik jeg aldrig styr på og vil hører om i kan hjælpe med lidt eksempler. Det handler om bindinger, hvos man jo lærer at det skal være løse bindinger, men hvordan virker de???

Jeg kender kun det jeg antager er faste bindinger, som dette psodo eksempel:

int Funktion(int a, int b) {
  return a*b;
}
c = Funktion(5,9);

Det må da være en fast. Jeg kan ikke forestille mig hvordan man laver den løs :-(

kan i hjælpe?
Avatar billede arne_v Ekspert
04. maj 2013 - 03:59 #1
er "løse bindinger" en fordanskning af "loose coupling"?
Avatar billede bdef Novice
04. maj 2013 - 08:35 #2
Jo, det må være lige netop det. Jeg har da bestået min uddannelse, hvor jeg mindes at jeg på et tidspunkt har sagt at det er bedre med løs end hård binding.

Det jeg mangler er hvordan man gør i praksis.

Jeg har arbejdet med at vi lagde data i en database, som alle kunne løse fra. Der vidste vi jo egentlig ikke hvem der hev data ud, hvornår og hvordan. Er det løs?

Det er jo stadig en stærk kobling. Hvis vi lavede om på et kolonnenavn, så ville de andres udtræk fejle.
Avatar billede arne_v Ekspert
05. maj 2013 - 04:45 #3
Lad mig give nogle eksempler som vil bevaege sig fra staerk til loes kobling:

1)

Man instantierer en klasse og kalder metoder paa den.

MinKlasse obj = new MinKlasse(p1, p2);
obj.metode1(a1,a2);
obj.metode2(a1,a2);

Man kan ikke rette i nogen metoder af MinKlasse uden at risikere at den kaldende kode ogsaa skal rettes.

Den kaldende kode skal vaere i kompatibel teknologi og i samme process.

2)

Man definerer et interface med de metoder som den kaldende kode maa bruge.

MitInterface obj = new MinKlasse(p1, p2);
obj.metode1(a1,a2);
obj.metode2(a1,a2);

Nu kan man rette metoder i MinKlasse saa laenge man overholder interface definitionen.

Den kaldende kode skal vaere i kompatibel teknologi og i samme process.

3)

Man har en dynamisk load process til at finde implementationen med.

MitInterface obj = MitDynamsiskeLoadFramework.Load(cfg);
obj.metode1(a1,a2);
obj.metode2(a1,a2);

Nu kan man rette metoder i MinKlasse saa laenge man overholder interface definitionen og den kaldende kode kan selv vaelge hvilken implementation af interfacet de vil bruge.

Den kaldende kode skal vaere i kompatibel teknologi og i samme process.

4)

Lav det om til wen web service.

MitInterface stub = ServiceLocator.Find(url);
stub.metode1(a1,a2);
stub.metode2(a1,a2);

Nu kan man rette metoder i MinKlasse saa laenge man overholder interface definitionen og den kaldende kode kan selv vaelge hvilken implementation af interfacet de vil bruge.

Den kaldende kode kan vaere i en hvilken som helst teknologi og paa et hvilket som helst system.
Avatar billede bdef Novice
27. maj 2013 - 16:55 #4
Tak, så forstår jeg for en form for binding vil der jo altid være:-)

Gi' et svar.
Avatar billede arne_v Ekspert
27. maj 2013 - 17:01 #5
svar
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
Kurser inden for grundlæggende programmering

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