Załóżmy, że tworzę klasę Objective-C reprezentującą ułamek i chcę tworzyć niezmienne i zmienne wersje.Jaki jest najskuteczniejszy sposób tworzenia niezmiennych i zmiennych wersji klasy-c?
Zgodnie ze wzorami w strukturze Foundation, można spodziewać się metody fractionByAddingFraction:
w wersji niezmiennej i addFraction:
w wersji zmiennej.
Paradoks, na który napotykam, to sposób włączenia logiki dodawania ułamków tylko między dwie klasy. Wydaje się, że niezmienna metoda musi znać (i wykorzystywać) zmienną metodę, aby uniknąć powielania kodu, a jednak zawierająca zmienne metody w implementacji niezmiennej klasy oznacza, że mogłyby one być wywołane na niezmiennym obiekt, który pokonuje punkt.
Krótkie wyjaśnienie (lub lepiej, kontynuacja tego uproszczonego przykładu) byłoby bardzo docenione!
Twój przykład klasy wydaje się reprezentować _value object_, więc nie sądzę, że powinieneś podać dla niego zmienną wersję. __Tylko zmień go na niezmienny .__ –
@ Jordão Na ten konkretny przykład masz całkowitą rację. Po prostu uważałem, że jest to najłatwiejszy i najbardziej zwięzły sposób na wyjaśnienie mojego nieporozumienia na temat pojęcia w ogóle (ponieważ dotyczy to bardziej skomplikowanych klas). Jakieś przemyślenia na temat tego, jak to się stanie, niezależnie od tego? – user1385983