Ankündigung

Einklappen
Keine Ankündigung bisher.

Aufbau eines Filters

Einklappen

Neue Werbung 2019

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

  • #16
    Zitat von nikosch Beitrag anzeigen
    Konfiguarionen zu schreiben ist einfach, Konfigurationen auswerten und in eine Architektur drücken dagegen nicht. Ob das nun XML oder sonstwas ist.
    Ja nikosch ich weiß, muss mich aktuell im Praktikum mit einem ähnlichen Problem rum schlagen. Nur das es da um Landingpageanwendung geht die für verschiedene Portale und Sparten der Firma dann zuständig ist.
    Also ich weiß schon was da für ein Aufwand vor allem in der Entwicklung und modelierung hinter steht.
    Aber er wollte einen Denkanstoß haben wie er da ran gehen könnte und so könnte er das machen, ob dafür seine Kenntnisse und Erfahrung ausreicht kann ich oder du ja nicht wissen.

    Aber man könnte ja Biespielsweise zumindest schon mal soweit analysieren das alle Anbieter auf alle Fälle und da bin ich mir sicher gemeinsame Daten zur Verfügung stellen und dann eben wieder Anbieterspezielle.

    Ein Tarif kann sich unterscheiden in z.B. Freiminuten, Monatsflat etc., nun muss man nur einen Weg finden dieses vernünftig auszuwerten. Das heist man kennt ja nun die verschiedensten Tarife und jeder Anbieter bietet schließlich einen Tarif an, wäre ja blöd für die wenn nicht.
    Also könnte man nun z.B. eine gemeinsame Schnittstelle bieten die man Tarif nennt. Eine Klasse Names Tarif implementiert nun diese Schnittstelle. Und nun könnte man Beispielsweise eine Strategie dahinter klemmen. Oder man macht es wieder auf einen anderen Weg wo man die Tarifgeschichten über ein Fluent Interface zusammenbauen kann.

    Das wären meine Gedanken, aber das Problem ist, dass man nun eigentlich nicht wirklich eine Aussagekräftige Diskussion führen kann, weil der TO kein Stück Analyse hier uns gegeben hat wo man über eine Architektur sinnvoll diskutieren kann.

    Gruß Litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de

    Kommentar


    • #17
      Hi,

      danke für die Antworten bzw. Hilfe.
      Da ich derzeit selber noch am überlegen bin und auch die kompletten Anforderungen noch nicht 100%ig klar sind, wollte ich zunächst ein paar Anstöße, wie man das Thema angehen könnte.

      Es gibt Funktionalitäten, die betreffen alle Anbieter, desweiteren gibt es Funktionalitäten, die nur von 2 oder 3 Anbietern benötigt werden und natürlich auch spezielle Anforderungen für den einzelnen Anbieter.

      Daher habe ich die Struktur auch erstmal so angelegt:

      PHP-Code:
      class Filter{}

      // Funktionalitäten, die nur von 2 oder 3 Anbietern benötigt werden
      class Filter_Speziell extends Filter{}

      class 
      Filter_Anbieter1 extends Filter_Speziell{}
      class 
      Filter_Anbieter2 extends Filter{} 
      Es wurde ja auch schon eimmal geschrieben, das es anbieterunabhängig gelöst werden kann, aber da habe ich noch keine richtige Vorstellung, wie man sowas umsetzen kann, da ja für jeden Anbieter ein unterschiedlicher Filter benötigt wird.

      Kommentar


      • #18
        Ich hätte das wahrscheinlich ganz anders umgesetzt: Ich würde eine große Menge an verschiedenen Filtern schreiben, welche einzeln auf Freiminuten oder Studententarife filtern. Diese einzelnen Filter kann man dann einem FilterArray hinzufügen, welcher die Filterung übernimmt. Jeder Tarif muss irgendwo ja seine Filterkriterien zur Verfügung stellen, sodass ich diese Infomrationen dazu nutzen würde den FilterArray zu füllen. Dieser FilterArray wird dann an den View übergeben, sodass auch nur die einzelnen Filter angezeigt werden, die zu einem Anbieter gehören.

        Das würde die Arbeit erleichtern, wenn ein neuer einzelner Filter hinzugefügt werden muss, welcher die alte Vererbungshirachie zerstören würde. Hier muss man nicht die ganze Vererbung neu aufbauen, sondern schreibt einen neuen Filter und erzeugt ein neues Filterkriterium.

        Kommentar


        • #19
          Hi,

          pro Anbieter gibt es ja so zw. 6 und 10 Kriterien, das wären also bei 4 Anbietern max. 40 Filter.
          Es gibt natürlich kriterien, wie z.B. Freiminuten, die gelten für mehrere Anbieter, haben aber einen anderen Namen. Die Filter müssen ja auch dem Anbieter zugeordnet werden. Woher weiß man dann welcher Filter zum jeweiligen Anbieter gehört? Alle Filter eines Anbieters würden ja letztlich den Gesamtfilter ergeben, wo der User dann auswählen kann.

          Kommentar


          • #20
            Ich habe das so verstanden, dass du einen Anbieter auswählen und diesen dann Filtern möchtest und diese Filter nur TRUE oder FALSE kennt, da du nur von Checkboxen gesprochen hast?! oder soll aus allen Anbietern gefiltert werden? In einem solchen Fall benötigt man sonst ja nur einen einzigen Filter der alle Kriterien kennt!

            Den Filter würde ich ja zur Laufzeit zusammenstellen, dabei sollte es nicht schwer sein festzuhalten zu welchem Anbieter der Filter gehört.

            Beschreib doch mal etwas genauer was du bisher hast und wie die Daten abgelegt sind und was genau das "Filter-Tool" können soll?!

            Kommentar


            • #21
              Hi,

              es soll für jeden Anbieter einen eigenen Filter geben, da ja jeder Anbieter andere Tarife hat. Mittels des Filters soll der User dann Tarife dieses Anbieters angezeigt bekommen. Das Ergebniss richtet sich dann natürlich nach der Auswahl des Users.

              Die Daten liegen alle in einer Datenbank und je nachdem welche Checkbox(en) angehakt ist / sind wird dann die Abfrage zusammengebaut. Das ist auch alles kein Problem, es geht mir nur um eine ordentliche Struktur des ganzen, da sich bei Tarifen ja sehr schnell mal Änderungen ergeben und der Filter an verschiedenen Stellen ensetzbar sein soll.

              Kommentar


              • #22
                Wenn es sich wirklich nur um TRUE oder FALSE Filter handelt, dann kann man ja auch einen einzigen Filter haben, den man zur Laufzeit generiert und muss nicht viele verschiedene Klassen für die verschiedenen Anbieter haben.

                Ich würde mir alle Filterkriterien die es zu einem Anbieter gibt aus der DB holen und dann den Filter zusammenstellen. Diesen Filter kann man dann zur Not auch cachen um die eine Datenbankabfrage zu vermeiden.
                Ich halte es aber für unhandlich für jeden Anbieter einen eigenen Filter zu erstellen, da jede Änderung an Tarifnamen, Anbieternamen oder auch neue Tarife und Anbieter immer einen großen Aufwand am Quellcode zur Folge haben, aber im Endeffekt nur Veränderungen des Inhaltes sind.

                Das ganze würde dann so ablaufen: Der Benutzer wählt einen Anbieter den er filtern will. Im Script wird nun die Liste aller Tarife des Anbieters geladen und damit auch die Liste aler möglichen Filterkriterien. Diese Filterkriterien werden zu einem Filter hinzugefügt und dieser dann dargestellt. Der Benutzer wählt die Checkboxen des Filters aus und nach dem Absenden des Formulars wird dieses an den Filter übergeben und von diesem ausgewertet. Anschließend kann der Filter an den Adapter für die Datenbankabfrage übergeben werden und die richtigen Daten ausgegeben werden.

                Nur eine Idee von mir und mein Ansatz wie ich ein solches Problem lösen würden. Im Endeffekt denke ich ist das ähnlich wie eine Konfigurationsdatei, aber da die Daten ja bereits in der Datenbank vorhanden sind, kann man diese auch von dort beziehen...

                Kommentar


                • #23
                  Zitat von axelf Beitrag anzeigen
                  Daher habe ich die Struktur auch erstmal so angelegt:

                  PHP-Code:
                  class Filter{}

                  // Funktionalitäten, die nur von 2 oder 3 Anbietern benötigt werden
                  class Filter_Speziell extends Filter{}

                  class 
                  Filter_Anbieter1 extends Filter_Speziell{}
                  class 
                  Filter_Anbieter2 extends Filter{} 
                  Es wurde ja auch schon eimmal geschrieben, das es anbieterunabhängig gelöst werden kann, aber da habe ich noch keine richtige Vorstellung, wie man sowas umsetzen kann, da ja für jeden Anbieter ein unterschiedlicher Filter benötigt wird.
                  halte ich auch für Unsinn. Viel mehr würde ich umsetzen

                  - Basisobjekt für Filter
                  - konkrete Implementierung für Filter
                  - Queue-Objekt für meherere Filter (http://de.wikipedia.org/wiki/Komposi...wurfsmuster%29)

                  Die Gruppierung gemeinsamer Filterkriterien betrifft dann eigentlich nur die Zusammenstellung der Queue. Bspw. über eine Factory.
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar

                  Lädt...
                  X