Generation gap (pattern)

Generation gap is a software design pattern documented by John Vlissides that treats automatically generated code differently than code that was written by a developer.

[1] Vlissides proposed creating a subclass of the generated code which contains the desired modification.

Modern byte-code language like Java were in their early stages when Vlissides developed his ideas.

In a language like Java or C#, this pattern may be followed by generating an interface, which is a completely abstract class.

The developer would then hand-modify a concrete implementation of the generated interface.