metódus, mint paraméter?

0 értékelés
407 megtekintés
hazazs (22 pont) kérdezte 2020. Már 27.
hazazs szerkesztett 2020. Ápr 9.

Sziasztok!

Van egy táblázatom 3 oszloppal, és mindháromra kellene egy "Cellaszerkesztés figyelő".

firstNameCol.setOnEditCommit(
            new EventHandler<TableColumn.CellEditEvent<Person, String>>() {
                @Override
                public void handle(TableColumn.CellEditEvent<Person, String> t) {
                    if (t.getNewValue().length() > 0) {
                        ((Person) t.getTableView().getItems().get(t.getTablePosition().getRow())).setFirstName(t.getNewValue());
                        dataBase.updatePerson((Person) t.getTableView().getItems().get(t.getTablePosition().getRow()));
                    } else {
                        table.refresh();
                      }
                }
            }
        );

Jelenleg ezt a kódot háromszor kell megírnom, mivel az egyikben setFirstName, a másikban setLastName, míg a harmadikban setEmail metódus van.

Hogy lehetne megoldani, hogy az aláhúzott oszlopot és settert paraméterként beadjam egy másik metódusba, hogy ne kelljen ezt háromszor megírni?

Előre is köszi,

hazazs

Herold (52 pont) szólt hozzá 2020. Ápr 8.
Herold áthelyezve 2020. Máj 22.
Kódként formázd meg a kódot légyszi.

betűtípus: Courier New, méret: 10, formátum: Formázott
hazazs (22 pont) szólt hozzá 2020. Ápr 9.
Köszi a javaslatot, átírtam.

1 Válasz

0 értékelés
Turan79 (34 pont) válaszolta meg 2020. Szep 7.
Szia,

Design Patternek közül a strategy pattern pont erre való. Ha nincs másik ilyen osztályod csak ez az egy, akkor lehet, hogy overkill, de mindenképpen érdemes megnézned:

https://www.tutorialspoint.com/design_pattern/strategy_pattern.htm

idén még ingyenes, automate tesztetkkel ellátott tanfolyam:
https://hyperskill.org/learn/step/3556
...