La brecha generacional es un patrón de diseño de software documentado por John Vlissides que trata el código generado automáticamente de manera diferente al código escrito por un desarrollador . No se deben realizar modificaciones en el código generado, ya que se sobrescribirán si el proceso de generación de código se vuelve a ejecutar, como durante la recompilación . [1] Vlissides propuso crear una subclase del código generado que contiene la modificación deseada. [2] Esto podría considerarse un ejemplo del patrón del método de plantilla .
El lenguaje de código de bytes moderno como Java estaba en sus primeras etapas cuando Vlissides desarrolló sus ideas. En un lenguaje como Java o C #, este patrón puede seguirse generando una interfaz, que es una clase completamente abstracta. Luego, el desarrollador modificaría manualmente una implementación concreta de la interfaz generada.