Lösung: Programmieren nach UML
Completion requirements
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace FirmaWerkProdukt
- {
- class Program
- {
- static void Main(string[] args)
- {
- Firma f1 = new Firma();
- /* Um die Assoziationen als starken Besitz (Komposition)
- * zu realisieren, werden die Objekte hier direkt im Konstruktoraufruf
- * erzeugt.
- * Die Werk-Produkt-Assoziation dagegen ist eine Aggregation!
- * */
- Werk w1 = new Werk(new Produkt("4 TiB Festplatte", 7000, 195.5)); // Komposition
- Werk w2 = new Werk(new Produkt("250 GiB SSD", 6000, 149.9));
- f1.addWerk(w1); // Aggregation
- f1.addWerk(w2);
- Console.WriteLine(f1.berechneGesamtUmsatz());
- Console.ReadKey();
- }
- }
- class Produkt
- {
- string produktName;
- double preis;
- int anzahl;
- public Produkt(string n, int a, double p)
- {
- produktName = n;
- anzahl = a;
- preis = p;
- }
- public double Preis
- {
- get { return preis; }
- }
- public int Anzahl
- {
- get { return anzahl; }
- }
- }
- class Werk
- {
- Produkt produkt;
- public Werk(Produkt p)
- {
- produkt = p;
- }
- public double berechneUmsatz()
- {
- return produkt.Anzahl * produkt.Preis;
- }
- }
- class Firma
- {
- private List<Werk> werke = new List<Werk>();
- public void addWerk(Werk w)
- {
- werke.Add(w);
- }
- public double berechneGesamtUmsatz()
- {
- double umsatz = 0;
- for(int i=0; i<werke.Count; i++)
- umsatz += werke[i].berechneUmsatz();
- return umsatz;
- }
- }
- }

UML-Sequenzdiagramm: Firma-Werk-Produkt
Last modified: Wednesday, 3 February 2021, 12:06 PM