Supongamos que estoy haciendo una clase Objective-C que representa una fracción, y quiero crear versiones inmutables y mutables.¿Cuál es la forma más eficiente de hacer versiones inmutables y mutables de una clase object-c?
Siguiendo los patrones en el marco de Foundation, es posible que espere ver el método fractionByAddingFraction:
en la versión inmutable y addFraction:
en la versión mutable.
La paradoja que me encuentro es cómo incluir solo la lógica de adición de fracciones una vez entre las dos clases. Parece que el método inmutable fractionByAddingFraction:
necesita conocer (y utilizar) el método addFraction:
mutable para evitar la duplicación de código, y aún así incluir los métodos mutables en la implementación de la clase inmutable significa que podrían ser invocados sobre lo inmutable objeto, que derrota el punto.
¡Una breve explicación (o mejor aún, una continuación de este ejemplo simplificado) sería muy apreciada!
Su ejemplo de clase parece representar un _value object_, por lo que no creo que deba proporcionar una versión mutable para él. __ Hazlo inmutable .__ –
@ Jordão Para este ejemplo en particular, tienes toda la razón. Sentí que esta era la manera más fácil y concisa de explicar mi confusión sobre el concepto en general (ya que se refiere a clases más complicadas). ¿Alguna idea de cómo se haría independientemente? – user1385983