Normalmente solo trabajo una aplicación de forma aleatoria, siempre que funcione, pero esto significa que no presto atención a ningún patrón de diseño. Mi aplicación actualmente hace un uso extenso de las variables globales (cargo una instancia de mi AppDelegate
en cada controlador de vista para acceder a las propiedades que declare en mi AppDelegate.h
). Aunque hace lo que yo quiero que haga, he leído que esta no es una buena práctica de diseño.Comprensión del patrón de diseño MVC en Cocoa Touch
Así que quiero comenzar a hacer que mi código sea "legítimo". Sin embargo, no puedo imaginar mi aplicación ahora sin variables globales. Son tan importantes para el bienestar de la aplicación, pero esto debe significar que estoy haciendo algo mal, ¿verdad? Simplemente no puedo imaginarme de qué otra manera haría algunas cosas. Tomemos, por ejemplo, esto:
Usted tiene dos controladores de vista aquí, un SideViewController
y una MainViewController
. Utilizando variables globales, como decir si toda la aplicación tenía una instancia compartida de SideViewController
y MainViewController
(appDelegate.sideViewController
y appDelegate.mainViewController
), puedo comunicarme fácilmente entre los dos controladores de vista, de modo que si presiono "News Feed" en mi SideViewController
, puedo Dile a mi MainViewController
que vuelva a cargar su vista.
No puedo imaginar, sin embargo, cómo se haría esto si estas no fueran variables globales? Si ocurre un evento en mi SideViewController
, ¿cómo notificaré a mi MainViewController
, de una manera que esté de acuerdo con los estándares de diseño?
¿Está utilizando un Controlador de navegación? –
Estoy usando un controlador de navegación para los principales contenidos de mi aplicación, sin embargo, la implementación actual de mi SideViewController no se agrega a la pila de navegación, sino a la ventana principal de la aplicación a través de '[appDelegate.window addSubView: sideViewController.view]' – Snowman