Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Signature matching: a tool for using software libraries
ACM Transactions on Software Engineering and Methodology (TOSEM)
Component-based product line engineering with UML
Component-based product line engineering with UML
Test Driven Development: By Example
Test Driven Development: By Example
A survey of software reuse libraries
Annals of Software Engineering
An Empirical Study of Representation Methods for Reusable Software Components
IEEE Transactions on Software Engineering
GCSE '99 Proceedings of the First International Symposium on Generative and Component-Based Software Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin)
Fit for Developing Software: Framework for Integrated Tests (Robert C. Martin)
Ranking Significance of Software Components Based on Use Relations
IEEE Transactions on Software Engineering
Head First Design Patterns
Code Conjurer: Pulling Reusable Software out of Thin Air
IEEE Software
Type based adaptation: an adaptation approach for dynamic distributed systems
SEM'02 Proceedings of the 3rd international conference on Software engineering and middleware
Using the web as a reuse repository
ICSR'06 Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated creation and assessment of component adapters with test cases
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
Automating the wrapping of software building blocks with test cases
Proceedings of the 17th international doctoral symposium on Components and Architecture
Hi-index | 0.00 |
The adapter or wrapper pattern is one of the most widely used patterns in software engineering since the problem of reconciling unsuitable component interfaces is so ubiquitous. However, the classic adapter pattern as described by the Gang of Four has some limitations which rule out its use in certain situations. Of the two forms of the pattern, only the object adapter form is usable with common programming languages not supporting multiple inheritance (such as Java or C#), and this is not able to adapt interfaces of classes whose own type is used in one or more of their operations. This makes it impossible for a tool to automatically generate "glue code" for such components and forces developers to come up with some non-trivial (and typically invasive) workarounds to enable clients to use them. In this paper we present an enhanced form of the adapter pattern which solves this problem by extending the way in which an adapter stores and manages adaptees. We therefore call it the Managed Adapter Pattern. After describing the pattern in the usual Gang of Four-oriented way, we describe its application in the system that initially motivated its development --- a test-driven component search engine which is able to retrieve reusable assets based on their semantics. A key challenge in the implementation of this engine was developing a flexible glue code generator that was able to automate the creation of adapters for all the kinds of components delivered by the underlying component repository.