Introduction – What is a surrogate?
Webster’s Dictionary defines it as “one appointed to act in place ofanother”. The general context is that of a lawyer who represents aclient before a court.
A more general concept is to consider a surrogate as someone orsomething that performs a process or task that is unable orunwilling to be performed by another.
Garbage collector, postal service, etc.
From the software perspective, surrogates can be thought of as“helper” type classes. These patterns provide valuable services byallowing aspects of a design to vary based on the needs of thesoftware. These varying aspects include such things as interfaces,implementations, structures, responsibilities, etc. (Patterns 30)