LSP s'applique au passage d'une instance d'une classe dans une méthode, à ce que la méthode fasse quelques trucs avec cette instance et produise souvent une sorte de résultat. Cela n'a pas d'importance pour les classes statiques car en C #, vous ne pouvez pas créer d'instance d'une classe statique.
Plus important encore, les classes statiques sont scellées et ne peuvent donc pas être héritées. Cela rend votre question sans objet pour C #.
Vous pourriez dire que les classes statiques sont toujours conformes au LSP car vous ne pouvez jamais produire une sous-classe qui violerait ce principe. Vous pouvez également dire que les classes statiques ne sont jamais compatibles LSP pour la même raison.
En Java, les classes statiques sont légèrement différentes. Vous ne pouvez pas marquer une classe de niveau supérieur comme "statique", donc si vous voulez créer une classe utilitaire similaire aux classes statiques de C #, vous devez la déclarer
final
et masquer son constructeur. Une fois que vous faites cela, cependant, ils se comportent de manière similaire à C # - vous ne pouvez pas les instancier ou les sous-classer. Vous pouvez déclarer une classe interne en tant que
static
, mais cela ne signifie pas la même chose qu'en C #: cela dénote simplement une
classe de niveau supérieur imbriquée .
VB.NET se comporte exactement de la même manière que C # dans ce cas, pour autant que je sache.
Vous n'avez pas mentionné si vous êtes intéressé par les autres principes, mais je vais quand même les inclure pour être complet.
S principe de responsabilité Ingle : une classe statique suivre facilement ce principe.
O stylo / principe fermé : les classes statiques étant scellées, elles ne peuvent jamais suivre ce principe. Principe de substitution
L iskov : comme ci-dessus.
Je principe de ségrégation nterface : ne s'applique pas à une seule classe, mais diviser une grande classe statique en petits, plus spécialisés pourraient être une étape vers suivant ce principe.
D principe d'inversion de ependency :classes statiques ne peuvent pas implémenterinterfaces,sortetoute classeutilisant cela dépendra toujours demiseœuvre tout ceexiste à l'époque. Les classes statiques violent donc ce principe.
Comme les classes statiques ne satisfont pas aux 5 critères, elles ne sont pas SOLIDES.