Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Would this be considered dependency injection, or delegation or object collaboration?

https://gist.github.com/3428071

share|improve this question
    
The page description says "dependency injection in php/codeigniter." –  Robert Harvey Aug 22 '12 at 21:44
add comment

closed as off topic by Michael K, gnat, Robert Harvey, ChrisF Aug 22 '12 at 23:12

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

1 Answer

up vote 2 down vote accepted

The ors in your question make it sound like those three things are mutually exclusive.

This is a form of dependency injection, albeit a non-conventional form of it. In the end, you are injecting Logger_model into User_model, so it is injection of a dependency. It is also true to say that Logger_model is a collaborator in this instance. And it is also true that User_model delegates logging to Logging_model.

So, basically, it's all of the above.

share|improve this answer
    
Thank you. I sat back and thought about the interaction of the classes some more and came to the same conclusion. However since you say this is a non-conventional form of it, would say using a Strategy Pattern where the User class instantiates the Logger depending on the action taken? What would be a more conventional form of DI? –  Andre Dublin Aug 22 '12 at 22:46
    
@AndreDublin Have a read of this: theserverside.com/news/1321158/… –  pdr Aug 22 '12 at 23:35
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.