Supponiamo di creare una classe Objective-C che rappresenta una frazione e di voler creare versioni immutabili e mutevoli.Qual è il modo più efficiente per creare versioni immutabili e mutabili di una classe obiettivo-c?
Seguendo gli schemi nel framework Foundation, è possibile che si veda il metodo fractionByAddingFraction:
nella versione immutable e addFraction:
nella versione mutabile.
Il paradosso che sto incontrando è come includere la logica di aggiunta di una sola volta tra le due classi. Sembra che il metodo immodificabile fractionByAddingFraction:
debba conoscere (e utilizzare) il metodo mutabile addFraction:
per evitare la duplicazione del codice, e tuttavia includere i metodi mutabili nell'implementazione della classe immutabile significa che potrebbero essere chiamati sull'immutabile oggetto, che sconfigge il punto.
Una breve spiegazione (o, meglio ancora, una continuazione di questo esempio semplificato) sarebbe molto apprezzata!
L'esempio di classe sembra rappresentare un oggetto _valore_, quindi non penso che dovresti fornire una versione mutabile per questo. __attialo renderlo immutabile .__ –
@ Jordão Per questo particolare esempio, hai perfettamente ragione. Ho solo sentito che questo era il modo più semplice e conciso per spiegare la mia confusione sul concetto in generale (in quanto riguarda classi più complicate). Qualche idea su come si farebbe a prescindere? – user1385983