MB: Trait oder Elternklasse in einer Klassen Gruppe?

Beitrag lesen

moin,

Ich habe eine Klassengruppe, die, per Instanziierung, einen SQL Teilstring erzeugen. Ich nenne z.B. In, Between, Cases, Arithmetic, LogicContainer aus der Klassengruppe.

Die Klassen sind lose gekoppelt. Einige Klassen können sich gegenseitig, per Consrtructor Injection, aufrufen:

new LogicContainer(
  new Between(
    /* Params */,
    LogicConstant::_AND )
)

Jeder Klasse bekommt, per Constructor Injection mit dazugehörigem Interface (z.B. ExpressionInterface, PredicateInterface, FunctionInterface), Übergabewerte, die sie dann zwischenspeichen und ergänzen $this->addString( $expression->getString() ), um dann diese Zwischengespeicherten Werte, per Constructor Injection, an den nächsten weiter zureichen.

Alle Klassen müssen über die selben Methoden verfügen:

protected function addString ( string $string ) : void;

public function getString () : string;

Kann man dieses Klassen Gebildes mit Traits oder mit einer Elternklasse realisieren? Ich sehe da Pros & Cons: Hab ihr erfahrungen?

Ich für meinen Teil habs' mit einer abstrakten Elternklasse realisiert, von der alle Klassen erben und dann die Elternklasse mit Traits versehen. So spart man sich gehörig schreibarbeit.

lgmb

akzeptierte Antworten

0 61

Trait oder Elternklasse in einer Klassen Gruppe?

MB
  • php
  • programmiertechnik
  • projektverwaltung
  1. -2
    pl
    1. 0
      Gunnar Bittersmann
      • programmiertechnik
      1. -1
        pl
        1. 2
          Tabellenkalk
        2. 3
          Christian Kruse
          1. 0
            Rolf B
            1. 0

              Grundlegende Lernstrategien

              Der Martin
              • sonstiges
              1. 0
                Gunnar Bittersmann
        3. 1
          Felix Riesterer
    2. 1
      Tabellenkalk
    3. 1
      Felix Riesterer
    4. 0
      MB
      1. -1
        pl
        1. 0
          MB
          1. 1
            Felix Riesterer
            1. 0
              MB
              1. 1
                Tabellenkalk
                1. 0
                  MB
              2. 1

                Plural-s und Schriftformatierung

                Der Martin
                • markdown
                • sprache
                1. 0
                  MB
                  1. 0
                    Tabellenkalk
                    1. 0
                      MB
                      1. 3
                        Der Martin
                        1. 0
                          MB
                          • markdown
                  2. 0
                    Matthias Apsel
                    1. 0
                      Der Martin
                  3. 0
                    Der Martin
                    1. 0
                      MB
                2. 0
                  Der Martin
                  1. 0
                    Matthias Apsel
                    1. 0
                      Tabellenkalk
          2. -3
            pl
            1. 0
              Christian Kruse
            2. 0
              pl
              1. 0
                pl
              2. 2
                MB
                1. 0
                  pl
            3. 0
              Rolf B
            4. 1
              MB
              1. -3
                pl
                1. 1
                  MB
                  1. 0
                    Gunnar Bittersmann
                  2. 0
                    MB
                    • meinung
                    1. -1
                      pl
                      1. 0
                        MB
                      2. 0
                        Rolf B
          3. 0
            pl
            1. 1
              Mitleser
            2. 0
              MB
              1. -1
                pl
                1. 0
                  MB
    5. 0
      MB
      1. -3
        pl
        1. 0
          Rolf B
  2. 0
    pl
    1. 0
      MB
  3. 1
    dedlfix
    1. 0
      MB
  4. 0

    Dependency Injection, Vorsicht Falle

    pl
    1. 1
      dedlfix