G
Guest
Gast
Hallo,
es gibt eine ganze Menge Ansätze Eingabedaten zu validieren. Oft sind diese Ansätze Teil eines größeren Frameworks wie JSF, Spring MVC, Hibernate usw. Der Nachteil ist aber, dass man sich damit mehr oder weniger stark an ein Framework bindet. Die Frage ist, wie man Eingabedaten prüfen kann, so dass man möglichst unabhängig von einem Framework ist? Oder ist das überhaupt sinnvoll?
Wenn set-Methoden nicht so dumm sein sollen, wie sie meistens sind, sondern die Kapselung mit einer Zugriffsmethode auch einen Zweck erfüllen soll, wäre die Prüfung der Eingabedaten an dieser Stelle genau richtig aufgehoben. Die Zugriffsmethode sorgt dafür, dass nur gültige Werte akzeptiert werden und sorgt so dafür, dass das Objekt immer in einem brauchbaren Zustand ist. Außerdem gehören die Bedingungen, die Eingabewerte erfüllen müssen, ja schon inhaltlich in eine Klasse des Modells. Dass sich diese Philosophie nicht mit (dem Murks von) JSF verträgt, ist offensichtlich.
Fehlermeldungen im Falle negativer Prüfung der Eingabedaten ist im Java-Bean-Standard aber offensichtlich nicht vorgesehen, sonst würde die Beans wohl einen Fehlercode statt "void" zurückgeben.
Meine Anforderung ist, dass die Prüfung in der Modell-Klasse stattfindet und dass ein Fehlercode zurückgegeben wird, der sich dann für die Internationalisierung nutzen lässt, die aber selbst nicht mehr Teil der Prüfung ist bzw. sein sollte.
Ich stelle mir das etwa so vor
Soweit ich weiß, wäre das dann aber keine Java-Bean nach dem Standard mehr und es könnte an anderen Stellen vielleicht Probleme geben.
Vielleicht ist der Framework-unabhängige Ansatz auch nur in der Theorie schön und man macht sich in der Praxis unnötig arbeit. Ich stelle mir eine Software-Komponente vor, die man z. B. in einer Webanwendung aber auch in einer Desktop-Anwendung benutzen könnte. In beiden Fällen ist eine Validierung notwendig, aber wenn die Prüfung der Eingabedaten an ein Web-Framework (wie JSF) gekoppelt ist, könnte die Validierung nicht Teil des universell einsetzbaren Moduls sein.
Was meint ihr dazu? Wie könnte man die Valdierung sinnvoll, Framwork-unabhängig machen und ist das überhaupt in der Praxis sinnvoll machbar?
es gibt eine ganze Menge Ansätze Eingabedaten zu validieren. Oft sind diese Ansätze Teil eines größeren Frameworks wie JSF, Spring MVC, Hibernate usw. Der Nachteil ist aber, dass man sich damit mehr oder weniger stark an ein Framework bindet. Die Frage ist, wie man Eingabedaten prüfen kann, so dass man möglichst unabhängig von einem Framework ist? Oder ist das überhaupt sinnvoll?
Wenn set-Methoden nicht so dumm sein sollen, wie sie meistens sind, sondern die Kapselung mit einer Zugriffsmethode auch einen Zweck erfüllen soll, wäre die Prüfung der Eingabedaten an dieser Stelle genau richtig aufgehoben. Die Zugriffsmethode sorgt dafür, dass nur gültige Werte akzeptiert werden und sorgt so dafür, dass das Objekt immer in einem brauchbaren Zustand ist. Außerdem gehören die Bedingungen, die Eingabewerte erfüllen müssen, ja schon inhaltlich in eine Klasse des Modells. Dass sich diese Philosophie nicht mit (dem Murks von) JSF verträgt, ist offensichtlich.
Fehlermeldungen im Falle negativer Prüfung der Eingabedaten ist im Java-Bean-Standard aber offensichtlich nicht vorgesehen, sonst würde die Beans wohl einen Fehlercode statt "void" zurückgeben.
Meine Anforderung ist, dass die Prüfung in der Modell-Klasse stattfindet und dass ein Fehlercode zurückgegeben wird, der sich dann für die Internationalisierung nutzen lässt, die aber selbst nicht mehr Teil der Prüfung ist bzw. sein sollte.
Ich stelle mir das etwa so vor
Code:
public class Artikel {
float preis;
public String setPreis(float preis){
if (preis < 0.0)
return Fehler.FEHLERCODE_XY;
}
}
Soweit ich weiß, wäre das dann aber keine Java-Bean nach dem Standard mehr und es könnte an anderen Stellen vielleicht Probleme geben.
Vielleicht ist der Framework-unabhängige Ansatz auch nur in der Theorie schön und man macht sich in der Praxis unnötig arbeit. Ich stelle mir eine Software-Komponente vor, die man z. B. in einer Webanwendung aber auch in einer Desktop-Anwendung benutzen könnte. In beiden Fällen ist eine Validierung notwendig, aber wenn die Prüfung der Eingabedaten an ein Web-Framework (wie JSF) gekoppelt ist, könnte die Validierung nicht Teil des universell einsetzbaren Moduls sein.
Was meint ihr dazu? Wie könnte man die Valdierung sinnvoll, Framwork-unabhängig machen und ist das überhaupt in der Praxis sinnvoll machbar?