Ankündigung

Einklappen
Keine Ankündigung bisher.

OOD OOP : TypenLib

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

  • OOD OOP : TypenLib

    Moinsen Leude,

    ich bin grad dabei eine Typenbibliothek zu entwerfen um mit PHP auch simple Typen OO abzubilden.

    Kleiner Ausflug warum da alles ( konstruierter Anwendungsfall ):

    Eine Zahl vom Typ KreisWinkel soll folgende Eigenschaften haben:
    * min 0
    * max 360
    * float

    Ich möchte diese Eigenschaften auf der Nutzerseite nicht prüfen müssen, wie ich das machmal bisher tat. Also so:
    pc:
    ist KreisWinkel > 360 dann werfe Fehler oder setze 360 als maximal. Das Gleiche analog dann auch für 0.
    Ich möchte diese Prüfung direkt über den Typ erledigen um Code-Redundanzen zu vermeiden. Also in der Klasse KreisWinkel, sobald der Konstruktor den Wert bekommt.

    Um es nochmal kurz zu schreiben. Es geht nicht darum, wie ich Klassen schreibe. Das beherrsche ich sehr gut. Es geht mir hier um den konzeptionellen Aspekt.

    Meine Ziele wären, die Typen lose an ein Projekt zu binden, falls das überhaupt denkbar ist.

    Derzeit bin ich am Anfang mit des OOD und mir fehlt noch die Erfahrung, welches Vorgehen hier sinnvoll ist.

    Meine Gedanken dazu:
    Die Klasse des Typs KreisWinkel könnte ohne Instanzierung aufgerufen werden. Mir persönlich erscheint das sinnvoll:

    PHP-Code:
    $kreis -> set_winkelKreisWinkel::get180 ) ); 
    oder Dependency Injection?
    PHP-Code:
    $kreis -> set_winkel( new KreisWinkel180 ) ); 
    Und das Kreis-Objekt nimmt sich das KreisWinkel-Objekt und führt die KreisWinkel-Methode get() intern aus.


    Die Methode set_winkel() erwartet dann einfach den Typ KreisWinkel.
    Wäre es hier sinnvoll der Klasse KreisWinkel nochmal ein Interface zu verpassen und der Methode set_winkel() einfach das Interface als Typ zu geben statt der Klasse?












    bitcoin.de <- Meine Freelancerwährung


  • #2
    und warum nicht
    $kreis -> set_winkel(180);

    erscheint mir logisch.

    Kommentar


    • #3
      Zitat von protestix Beitrag anzeigen
      und warum nicht
      $kreis -> set_winkel(180);

      erscheint mir logisch.
      Selbst-Validierung auf Grundlage des Typs!
      bitcoin.de <- Meine Freelancerwährung

      Kommentar

      Lädt...
      X