Después de leer muchos blogs, entradas en el foro y varios documentos de Apple, Todavía no sé si hacer una subclasificación exhaustiva en Objective-C es una buena idea o no.¿Subclases en Objective-C son una mala práctica?
Tomemos como ejemplo el siguiente caso:
decir que estoy desarrollando un juego de puzzles que tiene una gran cantidad de elementos. Todos esos elementos comparten una cierta cantidad del mismo comportamiento . Luego, dentro de mi colección de elementos, diferentes grupos de elementos comparten iguales comportamiento , grupos distintivos de grupos, etc ...
Así que, después de determinar lo que hereda de lo , decidí subclase cabo del olvido. ¿Y por qué no debería? Teniendo en cuenta la facilidad de ajuste general comportamiento toma con este modelo, I creo que logré algo que OOP es destinado para.
Pero, - y esta es la fuente de mi pregunta - Apple menciona usando delegados, métodos de origen de datos y protocolos informales a favor de la creación de subclases. Realmente me da vueltas la cabeza ¿por qué?
Parece que hay dos campos. Los que están a favor de la subclasificación, aquellos en fafor de no. Depende del gusto personal aparentemente. Me pregunto cuáles son los pros y los contras de la subclasificación masiva y no la subclasificación masiva?
Para concluir, mi pregunta es simple: ¿Estoy en lo cierto? ¿Y porqué o porqué no?
Kriem, Apple está hablando sobre el uso de cacao en general, nada que ver con Objective-C. Para cada proyecto individual, tendrá que decidir cómo configurar mejor su aplicación y base de código. En el caso de Apple, han configurado Cocoa (especialmente AppKit/UIKit) usando paradigmas MVC e IoC, por lo que sugieren que no subclases cosas como NSControl, etc. usted mismo cuando podría usar delegados en su lugar. En resumen: esta advertencia es específicamente para el marco de Cocoa, no para Objecive-C en general. –
@Jason: Esta es una muy buena respuesta, ¿por qué dejarlo como un simple comentario? – mouviciel
@mouviciel - Supongo que no pensé en eso. Ahora hay una serie de respuestas que básicamente dicen lo mismo, por lo que no parece que valga la pena agregar más ruido :) –