Componentization: the Visitor example

  title={Componentization: the Visitor example},
  author={Bertrand Meyer and Karine Arnout},
Patterns provide a vocabulary and catalog for common design solutions but are not reusable software. Through advanced object-oriented language mechanisms it is possible to simplify the application developer's job by turning certain patterns into fully reusable solutions 

Figures and Tables from this paper

Pattern Componentization: The Factory Example
This article presents the component’s design and its lessons for the general issue of pattern componentization.
Design pattern solutions as explicit entities in component-based software development
The feasibility of the proposed solution to become explicit software system entities, both in design and implementation, by defining them as component model entities is demonstrated and research challenges are identified.
Objectoriented design, especially in a modern form supporting high-level routine objects or “agents”, subsumes the functional approach, retaining its benefits while providing higher-level abstractions more supportive of extension and reuse.
(Behavioural) Design Patterns as Composition Operators
It is argued that to achieve code reuse, patterns should be defined and used in the context of software component models, and it is shown how in such a model, behavioural patterns can be defined as composition operators which can be stored in a repository, alongside components, thus enabling code reuse.
Towards a Problem Oriented Engineering Theory of Pattern-Oriented Analysis and Design
This position paper argues for the interpretation of software design patterns as instructions for transforming quality requirements into an architecture and a 'stress test'; and shows how to reuse an existing software component and its justification in a new development.
Strategy Design Pattern
Among 23 design patterns, Strategy pattern defines an interface common to all supported algorithms, which uses this interface to call the algorithm defined by a Concrete Strategy.
Component-based software engineering: a quantitative approach
Dissertacao apresentada para a obtencao do Grau de Doutor em Informatica pela Universidade Nova de Lisboa, Faculdade de Ciencias e Tecnologia
Investigating the Use of Object-Oriented Design Patterns in Open-Source Software: A Case Study
This paper investigates the extent to which object-oriented design patterns are used in open-source software, across domains.
A Problem-Oriented Theory of Pattern-Oriented Analysis and Design
Previous contributions to show how both high-level and detailed design phases can be given a problem-oriented encoding are extended to extend the reach of problem-orientation to design patterns.
Language features meet design patterns: raising the abstraction bar
This paper examines how advances in language design can narrow the gap for implementing design patterns and examples are given of syntax features in C# 3.0 as well as of library methods in terms of which pattern implementations become easier to produce and reproduce.


Design patterns: elements of reuseable object-oriented software
The book is an introduction to the idea of design patterns in software engineering, and a catalog of twenty-three common patterns. The nice thing is, most experienced OOP designers will find out
The power of abstraction , reuse and simplicity : An object-oriented library for event-driven design
A new library for event-driven design, defining a general and extendible scheme yet easy to learn and use on both the publisher and subscriber sides, provides an opportunity to analyze such other
From patterns to components
This thesis was to bring design patterns to a higher degree of reusability: transform design patterns into reusable components that programmers could use and reuse without recoding the same functionalities anew for each new development.
Walkabout Revisited: The Runabout
A variation of the visitor pattern which allows programmers to write visitor-like code in a concise way is presented which can be significantly faster than existing implementations of multiple dispatch for Java, such as MultiJava.
The essence of the Visitor pattern
  • J. Palsberg, C. Jay
  • Computer Science
    Proceedings. The Twenty-Second Annual International Computer Software and Applications Conference (Compsac '98) (Cat. No.98CB 36241)
  • 1998
This paper demonstrates how to program visitors without relying on accept methods and without knowing all classes of the objects in advance, so a program using the Visitor pattern can now be understood as a specialized version of a programs using the Walkabout class.
Pattern Componentization: the Factory Library, to appear in Innovations in Systems and Software Technology (a NASA Journal
  • (SpringerVerlag),
  • 2006
Object-Oriented Software Construction, 2nd Edition
Object-oriented software construction (2nd ed.)