Introduciré el concepto más simple en programación que sigue siendo tan poderoso que todos lo usan.
Inyección de dependencia , un término de 50 $ para un concepto de 10 centavos (tenga en cuenta que está estrictamente relacionado con OOP): pase todas sus dependencias en el constructor de su objeto.
Hacer esto producirá enormes beneficios, como poder probar el objeto, simular partes del mismo, hacerlo flexible y reutilizable y brindarle una mejor arquitectura en general.
- ¿Cuáles son algunos buenos libros para aprender y practicar estructuras de datos y algoritmos?
- Si uso un algoritmo de cifrado no tan bueno que inventé dentro de uno real, ¿cuánto más seguros están juntos?
- ¿Qué debo aprender después de conocer las estructuras de datos en la programación?
- Si usamos un algoritmo np para el problema del vendedor ambulante donde la gente va en cada ruta. ¿Por qué hay 2 ^ n personas en total? ¿Es porque una persona está viajando una ruta o no está viajando una ruta?
- ¿Por qué la recursión me causa tantos problemas?
Simple y efectivo. Un ejemplo simple (Ruby):
clase HelloWorldProvider
llamada de def
“Hola Mundo”
fin
fin
clase HelloWorld
def initialize (sentencia_proveedor)
@sentence_provider = oración_proveedor
fin
llamada de def
pone @ oración_proveedor.call
fin
fin
proveedor = HelloWorldProvider.new
hello_world = HelloWorld.new (proveedor)
hello_world.call
# => hola mundo
clase NamedHelloWorldProvider
def inicializar (nombre)
@name = name
fin
llamada de def
“hola # {nombre}!”
fin
fin
proveedor = NamedHelloWorldProvider.new (“Francesco”)
hello_world = HelloWorld.new (proveedor)
hello_world.call
# => hola Francesco!
Si bien el ejemplo es horrible, es fácil ver cómo puede reemplazar al proveedor con una oración diferente, o cómo puede probar todo: los dos objetos hacen dos cosas muy diferentes (uno sale a STDOUT, los otros proporcionan “hola mundo” ” cuerda).