In the article Inversion of Control Containers and Dependency Injections pattern, the author presents to fundamental ways in which we can eliminate dependencies between a given a class and its implementation, this is called a Plug in and its a very useful too to add into our projects when trying to improve functionality. Some important plug ins mentioned in the article, are the Dependency Injection and the Service locator, but these are just some of the plug ins that are available and other ones can be useful as well but but other type of problems and solutions.
The configuration of the assembler can vary within criteria and tastes, from what we could read in the article, there are two main configurations available, the programmatic interface and the XML configuration type of solution.
In the XML configuration, it starts with a file, but it soon becomes problematic when trying to assemble, the best way to eliminate this issue is by using programming code to improve the performance of such configuration an avoid adding complexity to our development.
Implementing a flexible solution is of huge importance in the real world, it determines how easy it would be to change how the system works to another configuration without going through a lot of trouble. Developing Flexible projects with flexible configuration is key to a good quality software.
Systems always depend on other things, and its up to the developer to make such dependencies flexible and manageable.
Plugins are great solutions for theses kind of dependency problems, when usually the plug in has a prepackaged set of instructions that will deal worth a given issue or problem that was generated as a cause of a dependency.
As programmers, we must avoid developing software that depends a lot on complicated modules, instead, we should focus in developing flexible and easy configurable software.