Java Refactoring

0

Hej

Mam dwie klasy w których występuje metoda która jest identyczna poza stałymi które są inne dla poszczególnych klas. Mianowicie :

class First{

        private boolean validateSth() {
                if (isNotBlank(this.tmnOe)) {
                    setSth(Constant.CONSTANT1);
                } else {
                    setSth(Constant.CONSTANT1);
                }
                return false;

            if (someMethod()) {
                setSth(Constant.CONSTANT2);
                return false;
            }
            return true;
        }
}
 
class Second{

        private boolean validateSth() {
                if (isNotBlank(this.tmnOe)) {
                    setSth(Constant.CONSTANT3);
                } else {
                    setSth(Constant.CONSTANT3);
                }
                return false;

            if (someMethod()) {
                setSth(Constant.CONSTANT4);
                return false;
            }
            return true;
        }
}
 

Macie może jakiś ciekawy pomysł jak te metoy scalić w jedną ?
I nie chodzi mi tu o wrzucenie stałych w argument metody tylko o jakieś bardziej obiektowe rozwiązanie : )

Pozdro 600

0

Po pierwsze to można to uprościć tak:

        private boolean validateSth() {
                if (isNotBlank(this.tmnOe)) {
                    setSth(Constant.CONSTANT1);
                } else {
                    setSth(Constant.CONSTANT1);
                }
                return false;
        }

bo przecież po returnie się nic juz nie wykona...

Po drugie: template method.

0

dzięki za pomoc...wykorzystam na pewno:)

0

C'mon, jaki template method? Niech zrobi z tego parametr konstruktora i sobie dwie fasolki skonstruuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1