Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Reusability: The Case for Object-Oriented Design
IEEE Software
The Java Language Specification, Java SE 7 Edition
The Java Language Specification, Java SE 7 Edition
Boa: a language and infrastructure for analyzing ultra-large-scale software repositories
Proceedings of the 2013 International Conference on Software Engineering
Hi-index | 0.00 |
In strongly typed Object-Oriented Programming languages, it is common to encounter type incompatibilities between separately developed software components one desires to compose. Using the Adapter pattern to overcome these type incompatibilities is only an option if changing the source code of the software components is feasible, as references from objects to other objects are oftentimes hard-coded. The concept of Dependency Injection (DI) is aimed at mitigating the issue of hard-coded references. However, current implementations of DI are intrusive in ways that component developers need to foresee future use cases. To increase the reusability of components we propose an approach and a tool to configure interoperations between components externally, without the need for intrusive code changes. This approach is based on a new dependency injection mechanism that is combined with the Adapter pattern. If necessary, the most appropriate adapter to inject is selected automatically, thereby making the specifications of dependency injection very flexible.