Search: in
Single-serving visitor pattern
Single-serving visitor pattern in Encyclopedia Encyclopedia
  Tutorials     Encyclopedia     Videos     Books     Software     DVDs  
       





Single-serving visitor pattern

In computer programming, the single-serving visitor pattern is a design pattern. Its intent is to optimise the implementation of a visitor that is allocated, used only once, and then deleted (which is the case of most visitors).

Contents


Applicability

The single-serving visitor pattern should be used when visitors do not need to remain in memory. This is often the case when visiting a hierarchy of objects (such as when the visitor pattern is used together with the composite pattern) to perform a single task on it, for example counting the number of cameras in a 3D scene.

The regular visitor pattern should be used when the visitor must remain in memory. This occurs when the visitor is configured with a number of parameters that must be kept in memory for a later use of the visitor (for example, for storing the rendering options of a 3D scene renderer).

However, if there should be only one instance of such a visitor in a whole program, it can be a good idea to implement it both as a single-serving visitor and as a singleton. In doing so, it is ensured that the single-serving visitor can be called later with its parameters unchanged (in this particular case "single-serving visitor" is an abuse of language since the visitor can be used several times).

Usage examples

The single-serving visitor is called through the intermediate of static methods.

  • Without parameters:

  • With parameters:

  • Implementation as a singleton:

Consequences

Pros

  • No "zombie" objects. With a single-serving visitor, it is ensured that visitors are allocated when needed and destroyed once useless.
  • A simpler interface than visitor. The visitor is created, used and free by the sole call of the apply_to static method.

Cons

  • Repeated allocation. At each call of the apply_to method, a single-serving visitor is created then discarded, which is time-consuming. In contrast, the singleton only performs one allocation.

Implementation (in C++)

Basic implementation (without parameters)

Passing parameters

If the single-serving visitor has to be initialised, the parameters have to be passed through the static method:

Implementation as a singleton

This implementation ensures:

  • that there is at most one instance of the single-serving visitor
  • that the visitor can be accessed later

Related patterns

uk: _ _( _ )






Source: Wikipedia | The above article is available under the GNU FDL. | Edit this article



Search for Single-serving visitor pattern in Tutorials
Search for Single-serving visitor pattern in Encyclopedia
Search for Single-serving visitor pattern in Videos
Search for Single-serving visitor pattern in Books
Search for Single-serving visitor pattern in Software
Search for Single-serving visitor pattern in DVDs
Search for Single-serving visitor pattern in Store




Advertisement




Single-serving visitor pattern in Encyclopedia
Single-serving_visitor_pattern top Single-serving_visitor_pattern

Home - Add TutorGig to Your Site - Disclaimer

©2011-2013 TutorGig.info All Rights Reserved. Privacy Statement