Intefejsy a immutable

Odpowiedz Nowy wątek
2019-03-13 20:04
0

Swego czasu doradzaliście mi by robić klasy immutable, z polami publicznymi, bo tak jest modnie. Widziałem w kodzie u @jarekr000000 , że jak robił atrybuty publiczne to dodawał final.
Spróbowałem tak zrobić w klasie, która implementuje interfejs i zonk:

interface Message {
    Integer getValue();
}
class MessageImpl implements Message {
    public final Integer value;

    public MessageImpl(Integer value) {
        this.value = value;
    }

    Integer getValue() {
        return value;
    }

musiałbym tak jak powyżej dać 2 możliwości dostępu do value: messageImpl.value i messageImpl.getValue() albo usunąć interfejs Message. Ale jak go usunę to okaże się, że wysypie się klasa:

class Container {

    public (Message message) {
        message.getValue() // ...
        // ...
    }
    // ...
}

a założmy, że klas implementujących tego Message jest wiele.

edytowany 2x, ostatnio: Julian_, 2019-03-13 20:05

Pozostało 580 znaków

2019-03-13 20:06
0

A komu potrzebny taki interfejs?

Edit, bo widze twój edit:
Jak już muszisz mieć taki dziwny interfejs, to po prostu nie rób tego pola publicznego, bo nie ma potrzbey i tak się nie będziesz pewnie odwóływał, a tylko przez metodę.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 2x, ostatnio: jarekr000000, 2019-03-13 20:15
Odpowiedz
Liczba odpowiedzi na stronę

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