Definition, synonyms and related words
A design pattern which specifies how the entities of a software communicate with each other.