LSP se aplica a pasar una instancia de una clase a un método, hacer que el método haga algunas cosas con esa instancia y, a menudo, produce algún tipo de resultado. Esto no importa para las clases estáticas, ya que en C # no puede crear una instancia de una clase estática.
Aún más importante, las clases estáticas están selladas y, por lo tanto, no se pueden heredar. Esto hace que su pregunta sea discutible en lo que respecta a C #.
Se podría decir que las clases estáticas siempre cumplen con LSP, ya que nunca se puede producir una subclase que viole ese principio. También se podría decir que las clases estáticas nunca son compatibles con LSP por la misma razón.
En Java, las clases estáticas son ligeramente diferentes. No puede marcar una clase de nivel superior como "estática", por lo que si desea crear una clase de utilidad similar a las clases estáticas de C #, debe declararla
final
y ocultar su constructor. Sin embargo, una vez que haces eso, se comportan de manera similar a C #: no puedes crear instancias de ellos ni subclasificarlos. Puede declarar una clase interna como
static
, pero eso no significa lo mismo que en C #: simplemente denota una
clase anidada de nivel superior .
VB.NET se comporta exactamente de la misma manera que C # en este caso, que yo sepa.
No mencionó si está interesado en los otros principios, pero los incluiré de todos modos para completar.
S principio de responsabilidad ingle : una clase estática seguir fácilmente este principio.
O lápiz / principio cerrado : como las clases estáticas están selladas, no pueden seguir este principio. Principio de sustitución de
L iskov : como arriba.
Me principio de la segregación Nterface : no se aplica a una sola clase, pero la división una gran clase estática en los más pequeños, más especializado que podría ser un paso para dar continuidad a este principio.
D principio ependency inversión : clases estáticas no pueden implementar interfaces, por lo que cualquier clase de usarlo siempre dependerá de lo que sea puesta en práctica existe en el momento. Las clases estáticas, por lo tanto, violan este principio.
Como las clases estáticas no satisfacen los 5 criterios, no son SÓLIDAS.