He estado programando por algún tiempo pero nunca me interesó saber en teoría lo que significa cada concepto, puedo estar usando una variedad de conceptos de programación, pero sin saber eso.Localizador de servicios, Inyección de dependencia (y contenedor) e Inversión de control
Localizador de servicios: Para mí, se refiere a un registro de accesos directos para acelerar el desarrollo al reducir la cantidad de código. Una pregunta es: ¿puede Locator referirse a espacios de nombre/clases solamente, o puedo tener un registro de variables?
Aquí es mi comprensión de la misma:
$locator = new ServiceLocator()
$locator->set('app', new System\Application());
$locator->set('db', new System\Pdo());
// Get the objects
$locator->get('db')->connect();
$locator->get('app')->run();
inyección de dependencias (y la inyección de dependencias del envase): La inyección de objetos dentro de objetos, lo que permite un acceso más rápido a éstas independientemente del patrón de fábrica. ¿Y DI Container?
Aquí es mi comprensión de la misma:
$app = new System\Application(System\Config::load());
Inversión de Control: No entiendo esto del diseño del modelo (o entender, pero no sé si lo que hago es COI)
Luego, en teoría (preferiblemente con ejemplos simples), ¿qué significa cada uno de estos conceptos? ¿Estoy en lo correcto o lo que está mal/se puede mejorar?
Gracias!
No está seguro de lo que entendemos por "un acceso más rápido." Las variables globales o singletons serían igual de rápidas. Creo que de lo que estás hablando es más acerca de la modularidad. – landons
Cuando tengo una DI, toda la clase se inyecta dentro de otra, por lo tanto, no necesito otro patrón de diseño porque tengo todo lo que necesito dentro de mi segunda clase. (¿Entiendes ?!) –
Espera un minuto ... ¿quién hace las preguntas aquí? : P – landons