OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Object-oriented design: a responsibility-driven approach
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
ET++SwapsManager: using object technology in the financial engineering domain
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Tools for the development of application-specific virtual memory management
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
An object-oriented real-time database system for multiprocessors
An object-oriented real-time database system for multiprocessors
Computer
Implementational Reflection in Silica
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Designing an Extensible Distributed Language with a Meta-Level Architecture
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Design Patterns: Abstraction and Reuse of Object-Oriented Design
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Traces (A Cut at the "Make Isn't Generic" Problem)
Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software
How and why to encapsulate class trees
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Open implementation design guidelines
ICSE '97 Proceedings of the 19th international conference on Software engineering
Open implementation analysis and design
Proceedings of the 1997 symposium on Software reusability
Hi-index | 0.00 |
For performance reasons, client applications often need to influence the implementation strategies of libraries whose services they use. If an object-oriented library contains multiple service classes customized for different usage patterns, applications can influence service implementations by instantiating the customized classes that match their needs. However, with many similar service classes, it can be difficult for applications to determine which classes to instantiate. Choosing the wrong class can result in very subtle errors since a customized class might use optimizations that work only over a restricted domain. In this paper, we show how client-side software contracts and exemplar-based class factories can be used to construct customized server objects. By expressing priorities and requirements in contracts, clients can delegate service class selection to the library and thereby avoid implicit dependencies on the library implementation. We have used this approach in the implementation of a real-time database system.