Wpis z mikrobloga

@MacDada: w takim przypadku metoda nie posiada takiego samego zachowania przy dwóch różnych wywołaniach

Jeśli wywołamy withScheme z inną wartością niż ta obecna w VO - dostaniemy nową instancję
, w przypadku wywołania z taką samą wartością - dostaniemy tą samą instancją

Powoduje to, że metoda zachowuje się niewłaściwie pod względem oczekiwań użytkownika
@Kofels: No i? Obiekt jest niemutowalny, więc dla klienta nie ma znaczenia czy dostanie w tym przypadku nowy obiekt czy ten sam.

Stąd stawiam, że ten klon jest „tylko dla zasady”, a nie że wnosi realną wartość.
@Kofels: Nie, że ja argumentuję „dla zasady” – chętnie się dowiem jakie argumenty przeważyły za tym, żeby robić więcej kodu niż mniej. Stąd, jeśli wiesz, poproszę o odpowiedź.

1. Czy „explicit” znaczy w tym przypadku, że interface nakazuje nową instancję (bardziej w phpdocu niż natywnie dla języka) i że więc zawsze się ją zwraca => nawet gdy klient tego nie zauważy (dopóki intencjonalnie nie sprawdzi, co generalnie raczej nikt nie będzie