Prameter Prüfung in protected Constructor



  • HAllo ich bin gerade dabei ein größeres Projekt aufzusetzten und bin gerade in der PLanungsphase.

    Ich habe eine Klasse A - die einen public Constructor hat und eine Instanz der Klasse B mit einem privaten Constructor.

    Klasse A

    public MatchReport(String matchNumber, int maxSets)
    {
    // vorher wird maxSet geprüft ob es einen gültigen Wert hat
    ...
        // add the sets to the list
        for (int setNumber = 1; setNumber <= maxSets; setNumber++) {
          matchSetList.put(setNumber, new MatchSet());
        }
    }
    

    Klasse B

    protected MatchSet(int setNumber)
    {
     // ist es sinnvoll hier setNumber noch einmal zu prüfen
    }
    

    Es geht um die Variable setNumber - sie kann nur werte >=1 und <= 25 annehmen.
    Es wird ja in der Klasse MatchReport bereits geprüft ob die Variable maxSets diesen Bereich abbildet.
    Muss in der Klasse MatchSet nun diese Prüfung noch einmal gemacht werden.
    Ich hätte gesagt nein - denn im MOMENT ist in der Klasse MatchReport die einzige Stelle wo eine Instanz dieser KLasse erzeugt wird. Aber das kann ja sich ändern.
    SOmit würde ich die Prüfung machen.
    Was ist eure Meinung.

    Vielen Dank



  • Du sagtest das der Konstruktor in der Klasse B "private" ist, er ist jedoch "protected".


  • Mod

    Es ist natürlich guter Stil, die Werte von Methodenparametern zu prüfen. Du machst das, damit die Methode von außen nicht falsch genutzt wird. Wenn Du einen guten Grund hast, dem Nutzer der Methode zu vertrauen, dann sehe ich nicht, warum Du noch einmal extra prüfen solltest. Wenn man es mit den Prüfungen übertreibt ist das auch so eine Art von Overengineering. ...nur meine Meinung.

    Was Du allerdings natürlich machen könntest ist die Nutzung von Assertions.


Anmelden zum Antworten