Adding README.md file
This commit is contained in:
parent
17164c282a
commit
4023944240
29
acyclic-visitor/README.md
Normal file
29
acyclic-visitor/README.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
layout: pattern
|
||||||
|
title: Acyclic Visitor
|
||||||
|
folder: acyclic-visitor
|
||||||
|
permalink: /patterns/acyclic-visitor/
|
||||||
|
categories: Behavioral
|
||||||
|
tags:
|
||||||
|
- Java
|
||||||
|
- Difficulty-Intermediate
|
||||||
|
---
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Intent
|
||||||
|
Allow new functions to be added to existing class hierarchies without affecting those hierarchies, and without creating the troublesome dependency cycles that are inherent to the GOF VISITOR Pattern.
|
||||||
|
|
||||||
|
## Applicability
|
||||||
|
This pattern can be used:
|
||||||
|
* When you need to add a new function to an existing hierarchy without the need to alter or affect that hierarchy.
|
||||||
|
* When there are functions that operate upon a hierarchy, but which do not belong in the hierarchy itself. e.g. the ConfigureForDOS / ConfigureForUnix / ConfigureForX issue.
|
||||||
|
* When you need to perform very different operations on an object depending upon its type.
|
||||||
|
* When the visited class hierarchy will be frequently extended with new derivatives of the Element class.
|
||||||
|
* When the recompilation, relinking, retesting or redistribution of the derivatives of Element is very expensive.
|
||||||
|
|
||||||
|
## Related patterns
|
||||||
|
* [Visitor Pattern](../visitor/README.md)
|
||||||
|
|
||||||
|
## Credits
|
||||||
|
* [Acyclic Visitor](http://condor.depaul.edu/dmumaugh/OOT/Design-Principles/acv.pdf)
|
Loading…
x
Reference in New Issue
Block a user