Una clase parcial es una característica de algunos lenguajes de programación orientados a objetos que permite dividir la implementación de una clase entre varios archivos de código fuente. Las clases parciales, que también se denominan tipos parciales, no existen en muchos lenguajes de programación, particularmente en los más antiguos como C ++ y Java. Cada lenguaje que implementa clases parciales, como C # y Ruby, maneja la implementación de manera un poco diferente.
En general, las clases parciales usan la palabra clave «parcial» para denotar partes de la clase, y si la palabra clave está en mayúscula depende del lenguaje de programación que se use. Cada parte de la clase se inicializa de la misma manera con declaraciones de clase idénticas, y sin estas palabras clave «parciales», sería ilegal crear varias clases en varios archivos, todos con el mismo nombre. La palabra clave “parcial” le dice al compilador o intérprete, dependiendo del idioma, que fusione todas las clases en una sola unidad grande. Todas las partes distintas de la clase deben tener la misma visibilidad, ya sea pública, privada o protegida. Si una parte de la clase se designa como abstracta, la clase fusionada también se designa como abstracta, incluso si ninguna de las otras partes individuales se designó como tal.
La implementación de una clase parcial en varios archivos tiene algunas ventajas significativas tanto en el estilo de programación como en la organización. Las clases parciales permiten la separación explícita de piezas de código relacionadas en grupos más especializados. Además, una clase parcial permite que varios programadores trabajen en partes específicas del código sin interrumpir potencialmente las demás y sobrescribir accidentalmente las revisiones. Incluso para programadores individuales, las clases parciales pueden ser útiles ya que pueden usarse para crear clases muy grandes sin crear también un solo archivo difícil de manejar que es difícil de organizar y leer.
Los patrones de implementación de clases parciales también tienen algunas desventajas significativas. A pesar de estar bajo el paraguas de la programación orientada a objetos, las clases parciales en realidad violan los principios de encapsulación fundamentales para la programación orientada a objetos. En la programación orientada a objetos, se supone que una clase es una sola entidad unificada que tiene sus propios estados y comportamientos únicos, es autónoma y puede usarse como una unidad cohesiva. Las clases parciales violan esta idea porque cada clase parcial actúa como una sola clase separada. Aunque las piezas que componen una clase parcial se fusionan en una clase grande en tiempo de ejecución, las piezas de la clase parcial son a menudo entidades independientes que podrían usarse solas sin necesidad de ningún tipo de fusión.