2016-10-24 1 views
0

Also habe ich ein Klassendiagramm nach der Zuordnung erstellt, ist das der richtige Weg? Ich bin besonders unsicher über die Column class, weil es mir scheint, dass es nur variabel sein kann.Klassendiagramm für Anzeigensystem

Sie bauen Anwendung, die Daten aus mehreren verschiedenen Werbesysteme und dann speichern Sie die Daten in die Datenbank geladen werden, so wird es möglich sein, sie zu analysieren.

Sie müssen im Auge nehmen, dass jedes Werbesystem unterschiedliche Struktur des Berichts hat: Verschiedenen benannten Spalten, andere Reihenfolge der Spalten, unterschiedliche Datumsformate Auch die Daten von Anzeigensystemen sind in unterschiedlichen Datenformaten (JSON, CSV, XML),

Berichte von jedem System unterschiedliche Menge an Spalten enthält, unsere Anwendung nur in einigen von ihnen interessiert ist: Datum, ad_campaing, AD_GROUP, Stichwort, Eindrücke, Preis (in jedem System, das sie haben anderen Namen)

Logik von Werbekonten besteht darin, dass eine Anzeigenkampagne mehrere Anzeigengruppen enthält und eine Anzeigengruppe mehrere Keywords enthält.

enter image description here

+1

Was für ein Klassendiagramm soll man machen? Ein Domänenmodell (Beschreibung der Entitäten in der Problemdomäne), ein konzeptionelles Modell der Lösung (im Hinblick auf die Konzepte, die die Benutzer kennen müssen), ein Modell der Software (die Klassen, die im Quellcode definiert sind), ein Modell der Zieldatenbank ....? –

+0

Nun, ich sollte objektorientiertes Design machen, das ist einfach zu lesen, und jedes Mal, wenn ich meine Frage mit Code und Fragen dazu gepostet habe, wurde es ignoriert/downvoted. Also ich denke, es ist genug, wenn ich zumindest weiß, ob die Struktur der Anwendung in diesem Diagramm gut ist. Ein objektorientiertes Design daraus zu machen, sollte nur darin bestehen, es in Code umzuwandeln, wenn ich mich nicht irre. – rtom

+0

OK, ich nehme an, dass Sie ein Design-Modell der Software machen müssen. Ich gehe davon aus, dass die Zielsprache eine OO-Sprache wie Java oder C# ist. Ich denke, Sie müssen eine generische Schnittstelle für einen Bericht und eine Adapterklasse für jeden spezifischen Berichtstyp entwerfen. Jede Adapterklasse implementiert die generische Schnittstelle, um den jeweiligen Berichtstyp zu laden. –

Antwort

1

Ich nehme an, Sie brauchen ein Klassendiagramm zu machen, den Quellcode zu modellieren eine objektorientierte Sprache geschrieben werden verwendet. Ich denke, der beste Ansatz besteht darin, für jeden spezifischen Berichtstyp (d. H. Für jedes einzelne Werbesystem) eine Adapterklasse zu erstellen. Jede Adapterklasse implementiert eine generische Schnittstelle (oder abstrakte Basisklasse), um den jeweiligen Berichtstyp zu laden. Hier ist mein Diagramm. Ich habe drei Adapter gezeichnet, aber es könnte mehr oder weniger geben.

enter image description here

Wenn Sie erwarten, dass mehrere Anzeigensysteme Daten in einem gemeinsamen Format liefern, z.B. CSV, während sich nur die Spaltennamen unterscheiden, können Sie einen generischen CSV_ReportLoader erstellen, der die Zuordnung des Spaltennamens aus einer Konfigurationsdatei (oder einem Konfigurationsobjekt) liest.

+0

Ich habe versucht, es in Code umzuwandeln, und ich habe einige Fragen gestellt. Dies ist mein erstes OOP-Projekt, also bin ich nicht wirklich sicher, was mein Ziel beim Aufbau des OOP-Projekts sein sollte, denn wenn wir nur die Funktionalität berücksichtigen, sieht es nicht so schwer aus ... Okay, aber mit Ihrem Ansatz müssen Sie erstellen eine neue Klasse für jedes neue Ad_system (in meiner Lösung brauchte man nur ein neues Objekt zu instantiieren), auch 'loadAdData' wird wahrscheinlich in jeder Klasse dieselbe Implementierung haben, also wäre es nicht sinnvoll, sie in' ReportLoader 'zu implementieren und zu erben es von dort. – rtom

+0

Ich weiß nicht, ob ich OOP falsch sehe, aber zum Beispiel, mit meiner Lösung haben Sie eine Klasse, die Sie Format Ihrer Daten finden können (wenn es JSON, XML, CSV), ist es nicht besser so ? Sie wissen, dass die Klasse später wiederverwendet werden kann? Weil ich denke, dass es in kleinste Stücke zerbrochen werden sollte, damit einzelne Teile wiederverwendbar sind, sollte es nicht so sein? – rtom

+0

Daten von Anzeigensystemen haben unterschiedliche Datenformate (JSON, CSV, XML). –