Предположим, что я создаю класс Objective-C, представляющий дробь, и хочу создавать неизменяемые и изменяемые версии.Каков наиболее эффективный способ создания неизменяемых и изменяемых версий класса object-c?
Следуя шаблонам в рамках Foundation, вы можете ожидать, что в неизменяемой версии можно найти метод fractionByAddingFraction:
и addFraction:
в изменяемой версии.
Парадокс, с которым я столкнулся, заключается в том, как только включить логику добавления долей между двумя классами. Кажется, что неизменяемый метод fractionByAddingFraction:
должен знать о (и использовать) метод изменчивого addFraction:
во избежание дублирования кода, и все же включать в себя изменяемые методы при реализации неизменяемого класса означает, что их можно было бы, вероятно, вызвать на неизменяемом объект, который побеждает точку.
Краткое описание (или, еще лучше, продолжение этого упрощенного примера) было бы высоко оценено!
Пример вашего класса, похоже, представляет объект _value_, поэтому я не думаю, что вы должны предоставить ему изменяемую версию. __Просто сделайте его неизменным .__ –
@ Jordão Для этого конкретного примера вы совершенно правы. Я просто почувствовал, что это самый простой и кратчайший способ объяснить мое замешательство в отношении концепции вообще (поскольку она относится к более сложным классам). Любые мысли о том, как это будет сделано независимо? – user1385983