Laden...

UML Operationswerte einer anderer Klasse auslesen

Erstellt von Kartoffel123 vor 5 Jahren Letzter Beitrag vor 5 Jahren 873 Views
K
Kartoffel123 Themenstarter:in
2 Beiträge seit 2018
vor 5 Jahren
UML Operationswerte einer anderer Klasse auslesen

Ich hoffe, dass dies das richtige Unterforum ist. Ich habe bezüglich UML Notation mit Anwendung auf C# nichts gefunden.
Ich habe eine Aufgabe mit Teillösung die mich etwas verwirrt.

Es geht um eine Klasse(Klasse A), die eine Operation hat und mit dieser Operation Werte vom Typ Boolean(mit Startwert False) ggf. einen True Wert zuweist. Weiterhin hat diese Klasse eine Funktion zum Lesen der Werte. Die Funktionen sind als public gekennzeichnet.

Jetzt ist eine 2. Klasse(Klasse B) auch an den Boolean Werten interessiert. Ich dachte, dass man normalerweise eine Assoziation zwischen den 2 Klassen vornimmt und die Klasse B somit auf die Lesefunktion der Klasse A zugreifen kann. Aber in der Teillösung wurde der Klasse B eine extra Funktion Auslesen zugeteilt.
Warum ist das so?

eventuell ist noch erwähnenswert, dass beide Klassen auch als Objekte instanziiert werden.

3.003 Beiträge seit 2006
vor 5 Jahren

Warum ist das so?

Weil Klasse A von Klasse B in deren Methode Auslesen benutzt wird. Enger muss man die beiden nicht koppeln.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

K
Kartoffel123 Themenstarter:in
2 Beiträge seit 2018
vor 5 Jahren

Also wurde in der Teillösung der Weg genommen über die Operation von Klasse B auf Klasse A zuzugreifen? Aber über eine Assoziation wäre das ganze doch auch gegangen?!
Also kann man das ganze als 2 Lösungen desselben Problems ansehen oder liege ich da falsch?

Ich sehe gerade das mir ein Fehler im Text unterlaufen ist: Ich meine anstatt Aggregation natürlich Assoziation.(Habs editiert)

3.003 Beiträge seit 2006
vor 5 Jahren

Der Zugriff auf eine andere Klasse (A) in einer Methode ist m.E. eine Assoziation, aber da scheiden sich die Geister etwas. Der Sinn von UML ist aber auch nicht, eineindeutig (im math. Sinn) auf Code abgebildet zu werden. Andere sehen nur das hier als Assoziation:


public class B
{
    public void PrivateMethod(A instanceOfA) 
    {
       instanceOfA.Operation();
        //...
    }
}

Aber das hier nicht:


public class B
{
    public void PrivateMethod() 
    {
        A instanceOfA = new A();
        instanceOfA.Operation();
        //...
    }
}

Das kann man sehen wie man will. Deine Teillösung IST eine Assoziation.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)