Redundante Zustandsprüfungen auslagern

Meisenmann

Mitglied
Hi,
ich habe in meinem (Pseudo-)Code folgende redundante Zustandsprüfung:

Java:
void f1(int){ 
  if(allowed) {
    update(int);
  }
  else {
    throw new Exception("not allowed");
  }
}

void f2(double) {
  if(allowed) {
    update(double);
  }
  else {
    throw new Exception("not allowed");
  }
}

void f3(String) {
  if(allowed) {
    update(String);
  }
  else {
    throw new Exception("not allowed");
  }
}

Wie kann ich diese Redundanz am elegantesten auslagern? Eine vorherige Methode mit switch bzw. if/else finde ich nicht so dolle.

Danke und viele Grüße,
Meisenmann
 
Zuletzt bearbeitet von einem Moderator:

JCODA

Top Contributor
Ist es möglich die update-Methode generisch zu machen? Damit könnte f ebenfalls generisch sein und die Methode gibt's dann nur noch ein einziges Mal.
 

Ruzmanz

Top Contributor
Kommt auf die Größe des Projekts an. Bei großen Projekten bietet sich AOP (Aspektorientierte Programmierung) an. Wenn es sich nur um die drei Methoden dreht, ändert man update:


Ist es möglich die update-Methode generisch zu machen? Damit könnte f ebenfalls generisch sein und die Methode gibt's dann nur noch ein einziges Mal.
 

Meisenmann

Mitglied
vielen Dank für die Antworten!

Das mit der generischen Implementierung der Methode verstehe ich nicht. Ich möchte ja die Datentypen unterschiedlich behandeln. Für Zahlenwerte möchte ich beispielsweise eine Range-Prüfung durchführen und für
String ein bestimmtes Regex abfragen. Somit müsste ich ja in der Methode mit if und instanceof den Typ des Parameters abfragen.

Wie ist das mit AOP gemeint?

Java-Tags habe ich absichtlich nicht verwendet, weil es sich ja um Pseudo-Code handelt

Danke und viele Grüße
Meisenmann
 

arilou

Bekanntes Mitglied
Statt dem

if(allowed)
// ...
else
throw

könnte man eine Methode

checkAllowed()

einfügen; wenn die eine Exception wirft, wird ein nachfolgendes update(...) dann auch nicht mehr ausgeführt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Designfrage: Dispatcher-Programmierung - redundante Auslegung Allgemeine Java-Themen 1
sliwalker Redundante Deklarationen in abstrakten Klassen Allgemeine Java-Themen 6
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Code auslagern Allgemeine Java-Themen 5
M Methoden Operation auslagern und "nebenbei" laufen lassen Allgemeine Java-Themen 3
M Methoden Methode Auslagern Allgemeine Java-Themen 6
L Arbeitsspeicher auf Festplatte auslagern Allgemeine Java-Themen 36
P Code in Methode auslagern möglich? Allgemeine Java-Themen 9
C KeyListener auslagern - Wie? Allgemeine Java-Themen 3
C Informationen in eine Datei auslagern Allgemeine Java-Themen 19
N Wie Listenabgleich auf zwei CPU Cores auslagern? Allgemeine Java-Themen 6
B Daten effizient ein- und auslagern Allgemeine Java-Themen 7
A Wie am besten Daten auslagern um heap zu schonen Allgemeine Java-Themen 4
H Layout auslagern, aber wie genau??? Allgemeine Java-Themen 11
G Frage zu Programmierstil: Auslagern von Kostanten Allgemeine Java-Themen 8
byte Annotations: Arrays auslagern Allgemeine Java-Themen 2
DeeDee0815 Resourcen in JARs auslagern Allgemeine Java-Themen 4
G SQL Anfragen auslagern+Transaktionen Allgemeine Java-Themen 17
H Tabellenmethode auslagern Allgemeine Java-Themen 2
N Methoden in eigene Dateien auslagern? Allgemeine Java-Themen 10
S grafische Oberfläche-> auslagern innerer klassen Allgemeine Java-Themen 5
K AUf den USB Stick auslagern Allgemeine Java-Themen 15
C RAM Speicher in Datei auslagern (Java Swapping) Allgemeine Java-Themen 4
H Methoden in andere Files auslagern Allgemeine Java-Themen 6
A menüeinträge im Java Menü auslagern Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben