LSP berlaku untuk melewatkan instance kelas ke dalam metode, meminta metode melakukan beberapa hal dengan instance itu, dan sering menghasilkan semacam hasil. Ini tidak masalah untuk kelas statis karena di C # Anda tidak dapat membuat turunan dari kelas statis.
Yang lebih penting lagi, kelas statis disegel dan karenanya tidak dapat diwarisi. Ini membuat pertanyaan Anda dapat diperdebatkan sejauh C # berjalan.
Anda bisa mengatakan bahwa kelas statis selalu sesuai dengan LSP karena Anda tidak pernah dapat menghasilkan subkelas yang akan melanggar prinsip itu. Anda juga bisa mengatakan bahwa kelas statis tidak pernah sesuai dengan LSP untuk alasan yang sama.
Di Jawa, kelas statis sedikit berbeda. Anda tidak dapat menandai kelas tingkat atas sebagai "statis", jadi jika Anda ingin membuat kelas utilitas yang mirip dengan kelas statis C #, Anda harus mendeklarasikannya sebagai
final
dan menyembunyikan konstruktornya. Namun, begitu Anda melakukannya, mereka berperilaku serupa dengan C # - Anda tidak dapat membuat instance atau subklasnya. Anda bisa mendeklarasikan kelas dalam sebagai
static
, tetapi itu tidak berarti hal yang sama seperti di C #: itu hanya menunjukkan
kelas tingkat atas bersarang .
VB.NET berperilaku persis sama dengan C # dalam kasus ini, sejauh yang saya tahu.
Anda tidak menyebutkan apakah Anda tertarik pada prinsip-prinsip lain, tetapi saya tetap akan memasukkannya untuk kelengkapan.
S prinsip tanggung jawab perapian di tungku : kelas statis dengan mudah mengikuti prinsip ini.
O pena / prinsip tertutup : karena kelas statis disegel, mereka tidak dapat mengikuti prinsip ini. Prinsip substitusi
L iskov : seperti di atas.
Saya menerapkan prinsip segregasi : tidak berlaku untuk satu kelas, tetapi memecah satu kelas statis besar menjadi lebih kecil, yang lebih khusus dapat menjadi langkah menuju mengikuti prinsip ini.
D prinsip ependency inversi : kelas statis tidak dapat mengimplementasikan antarmuka, sehingga setiap kelas menggunakannya akan selalu bergantung pada pelaksanaan apa pun yang ada pada saat itu. Kelas statis karenanya melanggar prinsip ini.
Karena kelas statis tidak memenuhi semua 5 kriteria, mereka tidak SOLID.