Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Ideen und Lösungen zur OOP Umsetzung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Ideen und Lösungen zur OOP Umsetzung

    Hallo zusammen,

    ich bräuchte ein paar Vorschläge und Anregungen zur OOP Lösung.

    Ich beschreibe mein Problem mal anhand eines Beispiels:
    Ein Mobilfunkanbieter, wenn man das heute noch so nennen darf. Vertreibt Smartphones, Ersatzteile (Akku, Ladegerät,...), Zubehör/Dekokram(Bumper, Hüllen,...), Mobile-Dienste.

    Meine Idee nun zu den Klassen:
    Code:
    Klasse Produkt
    davon erbende Kind Klassen: Smartphone, Ersatzteil, Zubehör, Dienst
    außerdem
    Code:
    Klasse Paket beinhaltet 1-* Instanzen der Klasse Produkt
    So nun kann man natürlich einem Kunden ein Angebot erstellen.
    Dafür braucht man
    Code:
    Klasse Angebot,
    dies besteht unter andrem aus 1-* Instanzen der Klasse Position.
    Ein Objekt der Klasse Position besteht unter andrem aus
    1-* Instanzen der Klasse Produkt und/oder 1-* Paket
    Macht das Sinn, auf diese Weise vorzugehen. Oder würdet Ihr noch etwas hinzufügen. Oder würdet ihr beispielsweise die Klasse Paket ebenso von Produkt erben lassen?


    Danke schonmal für alle Ideen
    Gruß


    Falls mein Hervorheben bestimmter Bereich mittels "Code" ungünstig war/ist, sorry.
    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

  • #2
    Was möchtest du denn genau tun? Position klingt so nach Rechnungswesen.
    Eine Rechnung kann n Positionen enthalten.
    Eine Position kann n Produkte enthalten.
    Ein Paket kann n Produkte enthalten.

    Was meinst du mit Angebot? Ist das gleichzusetzen mit einem Warenkorb?
    Pauschal würde ich sagen das ein Angebot n Produkte enthält.

    - Die Klassen Smartphone, Ersatzteil, Zubehör, Dienst würde ich komplett streichen.
    - Eine Vererbung sehe ich gar nicht.

    edit:
    Eine Position hat streng genommen auch nix mit einem Produkt zu tun.

    Kommentar


    • #3
      Zitat von Carpenter Beitrag anzeigen
      Was möchtest du denn genau tun? Position klingt so nach Rechnungswesen.
      Eine Rechnung kann n Positionen enthalten.
      Eine Position kann n Produkte enthalten.
      Ein Paket kann n Produkte enthalten.

      Was meinst du mit Angebot? Ist das gleichzusetzen mit einem Warenkorb?
      Pauschal würde ich sagen das ein Angebot n Produkte enthält.

      - Die Klassen Smartphone, Ersatzteil, Zubehör, Dienst würde ich komplett streichen.
      - Eine Vererbung sehe ich gar nicht.
      Die Idee dahinter ist die Generierung eines Angebots.
      Daher habe ich erstmal grob runter gebrochen, woraus so ein Angebot unter anderem besteht.

      Somit hatte ich mir gedacht, ein Angebot besteht aus 1 oder mehreren Angebotspositionen. Eine Angebotsposition besteht aus einem Produkt, oder der Summe mehrerer Produkte (sprich Paket), ausserdem hat so eine Position natürlich noch eine Menge, einen Preis, etc. Und ein Paket besteht aus mehreren Produkten.

      Somit würde ich sagen, Produkt ist eine Vaterklasse oder gleich abstract.
      Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

      Kommentar


      • #4
        editiert wegen müll

        Kommentar


        • #5
          Okay vergiss was ich gesagt hab, war wohl neben mir.

          Du hast schon recht.
          - Ein Angebot hat n Positionen
          - Eine Position hat n Produkte (aber immer das selbe)

          Aber eine vererbung kann ich immer noch nicht sehen.

          Kommentar


          • #6
            Zitat von Carpenter Beitrag anzeigen
            Nach meinem empfinden hat ein Angebot von Produkten nichts mit einer Position zu tun. Eine Position wird erst bei der Rechnungsgenerierung erstellt.
            Die Produktklasse hat zB die Eigenschaften, Beschreibung, Preis, Name etc..

            Warum möchtest du eine Klasse von Produkt erben lassen?
            Man möchte ja nicht immer wieder eine neue Klasse erstellen wenn ein weiteres Produktsegment hinzukommt.
            Also ich kenne es so, dass auch Angebote diverse Positionen haben.
            Sonst müsste man für jedes Produkt ein Angebot schreiben. Das Wort Angebotspositionen fällt meines Wissens auch nicht unter Neologie. Angebote haben schließlich häufig mehrere Positionen.
            Daher hätte ich jetzt gesagt, die Klasse Angebot hat eine Instanzvariable positionen, welche ein Array von Positionsobjekten ist. Für mich wäre jetzt die Position ebenso ein Klasse. Klar man kann einem Produkt einen Standardpreis verpassen, aber die Position besteht letztlich aus dem Produkt, der Menge und dem Preis (muss nicht Standard Preis sein). Manchmal sogar aus Netto und Brutto Preis.

            Die Absicht, Produkt zu einer Vaterklasse zu machen, waren die Unterschiede in den Produkttypen.

            Ein Dienst hat beispielsweise eine monatliche Abrechnung
            Ein Smartphone hat einen Festpreis und kann repariert oder ersetzt werden.
            Ein Paket kann einen Dienst und ein Smartphone beinhalten mit monatlicher Abrechnung.


            Da die Produkttypen derart unterschiedlich sind, dachte ich mir, sollte man diese auch Unterteilen.
            Ist vieleicht überholtes Schulwissen, jedoch ist ein Produkt erstmal etwas recht abstraktes. Definierter wird es, wenn man Kindklassen bildet welche von dieser abstracten Klasse erben.
            In der Schule gab es häufig das Beispiel um das ganze mal auf die Spitze zu treiben:
            Code:
            abstract Tier -> abstract Säugetier-> abstract Katze-> abstract Großkatze->Löwe
            Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

            Kommentar


            • #7
              Ich frage mich auch gerade wann es sinn macht, eine Klasse zu erstellen. Und wann nicht.
              Beispiel: Zu dem Angebot gehört auch ein Kunde. Bedeutet für mich zwei Möglichkeiten:
              1. Kundenobjekt erstellen und zum Angebot hinzufügen
              2. Kundennummer im Angebot unterbringen und die nötigen Daten aus der Datenbank fischen.

              Was macht da mehr Sinn?
              Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

              Kommentar


              • #8
                Hi,

                schau mal bitte hier rein und wenn Du das durch hast, kannst du die Frage selber beantworten:

                http://www.peterkropff.de/site/php/oop.htm

                mfg Wolf29
                while (!asleep()) sheep++;

                Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                Kommentar


                • #9
                  Zitat von Moewe Beitrag anzeigen
                  Ich frage mich auch gerade wann es sinn macht, eine Klasse zu erstellen. Und wann nicht.
                  Beispiel: Zu dem Angebot gehört auch ein Kunde. Bedeutet für mich zwei Möglichkeiten:
                  1. Kundenobjekt erstellen und zum Angebot hinzufügen
                  2. Kundennummer im Angebot unterbringen und die nötigen Daten aus der Datenbank fischen.

                  Was macht da mehr Sinn?
                  Nr. 1

                  Kommentar


                  • #10
                    So, ich hab mal ein wenig gebastelt, um meine Beschreibung etwas zu visualisieren:
                    [IMG][/IMG]

                    Mein Problem bezieht sich hauptsächlich auf die Klasse Paket. Seh ich diese so richtig (Ist mit NClass erstellt)?
                    Meiner Meinung nach ist ein Paket eine Kindklasse von Produkt. Gleichzeitig aber, hat es ein Member/eine Eigenschaft/eine Instanzvariable welche ein Array ist. Der Inhalt des Arrays ist ebenso vom Typ Produkt und kann diverse Instanzen der Kindklassen von Produkt beinhalten.

                    Ist das Design technisch gut, oder würdet ihr das anderes lösen?

                    Gruß
                    Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                    Kommentar


                    • #11
                      Hallöchen,

                      welche Rolle spielt das Paket in deiner Anwendung und wieso sollte es eine Kindklasse von Produkt sein?

                      Viele Grüße,
                      lotti
                      [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

                      Kommentar


                      • #12
                        Zitat von lottikarotti Beitrag anzeigen
                        Hallöchen,

                        welche Rolle spielt das Paket in deiner Anwendung und wieso sollte es eine Kindklasse von Produkt sein?

                        Viele Grüße,
                        lotti
                        Angenommen ich bin Verkäufer in einem Mobilefunkladen. Ein Kunde kommt herein und möchte verschiedene Angebote haben. Hier habe ich mir nun unter anderem diese Varianten überlegt:
                        1. monatliche Berechnung des Tarifes und einmalige Bezahlung des Smartphones
                        2. Ein Paketpreis. Diese übliche Variante, wo man viel Geld dafür bezahlt, das Smartphone über 2 Jahre abzustottern. Also Tarif + Rate für das Smartphone. Dies ist meist als ein Preis im Angebot und auf der Rechnung ausgewiesen. Man sieht in der Regel nicht, was das Smartphone monatlich in diesem Paket kostet. Damit ist für mich ein Paket ebenso ein Produkt. Sollte ich hier falsch liegen, korrigiert mich bitte.
                        3. Nur den Tarif als monatliche Abrechnung
                        4. Nur das Smartphone
                        5. Habe ich auch schon von gehört, man bezahlt auch den Tarif für die ganzen zwei Jahre komplett und bekommt dadurch einen Rabatt.
                        6. Paket als einmaligen Preis für die zwei Jahre.

                        Verständlich diese Abrechnungsmodelle?
                        Die Jatravartiden auf Viltwodl VI können den Kram von dir auch nicht nachvollziehen

                        Kommentar

                        Lädt...
                        X