Keynote address - data abstraction and hierarchy
OOPSLA '87 Addendum to the proceedings on Object-oriented programming systems, languages and applications (Addendum)
Data abstraction and object-oriented programming in C++
Data abstraction and object-oriented programming in C++
Contracts: specifying behavioral compositions in object-oriented systems
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
The art of metaobject protocol
The art of metaobject protocol
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Eiffel: the language
Object-oriented modeling and design
Object-oriented modeling and design
A runtime type information system for C++
TOOLS 7 Proceedings of the seventh international conference on Technology of object-oriented languages and systems
Designing and implementing Choices: an object-oriented system in C++
Communications of the ACM
An operational metadata system for C++
TOOLS 8 Proceedings of the eighth international conference on Technology of object oriented languages and systems
Metaobject protocols: why we want them and what else they can do
Object-oriented programming
Metaobject programming in CLOS
Object-oriented programming
Adaptive object-oriented programming using graph-based customization
Communications of the ACM
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Combining contracts and exemplar-based programming for class hiding and customization
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
The design and evolution of C++
The design and evolution of C++
Exploiting style in architectural design environments
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Abstractions for Software Architecture and Tools to Support Them
IEEE Transactions on Software Engineering - Special issue on software architecture
A pattern language for tool construction and integration based on the tools and materials metaphor
Pattern languages of program design
Formalizing architectural connection
ICSE '94 Proceedings of the 16th international conference on Software engineering
ICSE '93 Selected papers from the Workshop on Studies of Software Design
A New Definition of the Subtype Relation
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
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
A Component Model for Perspective Management of Enterprise Software Reuse
Annals of Software Engineering
Hi-index | 0.00 |
A good reusable framework, pattern or module interface usually is represented by abstract classes. They form an abstract design and leave the implementation to concrete subclasses. The abstract design is instantiated by naming these subclasses. Unfortunately, this exposes implementation details like class names and class tree structures. The paper gives a rationale and a general metaobject protocol design that encapsulates whole class trees. Clients of an abstract design retrieve classes and create objects based on class semantics specifications. Using abstract classes as the only interface enhances information hiding and makes it easier both to evolve a system and to configure system variants.