Definition, synonyms and related words
A behavioural design pattern that separates an algorithm from an object structure on which it operates.