LSP áp dụng để chuyển một thể hiện của một lớp vào một phương thức, có phương thức thực hiện một số nội dung với thể hiện đó và thường tạo ra một số loại kết quả. Điều này không quan trọng đối với các lớp tĩnh vì trong C #, bạn không thể tạo một thể hiện của lớp tĩnh.
Thậm chí quan trọng hơn, các lớp tĩnh được niêm phong và do đó không thể được kế thừa. Điều này làm cho câu hỏi của bạn không còn xa nữa khi C # đi.
Bạn có thể nói rằng các lớp tĩnh luôn tuân thủ LSP vì bạn không bao giờ có thể tạo ra một lớp con vi phạm nguyên tắc đó. Bạn cũng có thể nói rằng các lớp tĩnh không bao giờ tuân thủ LSP vì lý do tương tự.
Trong Java, các lớp tĩnh hơi khác nhau. Bạn không thể đánh dấu một lớp cấp cao nhất là "tĩnh", vì vậy nếu bạn muốn tạo một lớp tiện ích tương tự như các lớp tĩnh của C #, bạn phải khai báo nó dưới dạng
final
và ẩn hàm tạo của nó. Tuy nhiên, khi bạn làm điều đó, chúng hoạt động tương tự như C # - bạn không thể khởi tạo chúng hoặc phân lớp chúng. Bạn có thể khai báo một lớp bên trong là
static
, nhưng điều đó không có nghĩa giống như trong C #: nó chỉ đơn giản là biểu thị một
lớp cấp cao nhất lồng nhau .
VB.NET hoạt động chính xác giống như C # trong trường hợp này, theo như tôi biết.
Bạn đã không đề cập đến việc bạn có quan tâm đến các nguyên tắc khác hay không, nhưng dù sao tôi cũng sẽ đưa chúng vào để hoàn thiện chúng.
Nguyên tắc trách nhiệm của S ingle : một lớp tĩnh dễ dàng tuân theo nguyên tắc này.
O bút / nguyên tắc khép kín : từ lớp tĩnh được niêm phong, họ có thể không bao giờ làm theo nguyên tắc này. Nguyên tắc thay thế
L iskov : như trên.
Tôi nói trước nguyên tắc phân tách : không áp dụng cho một lớp duy nhất, nhưng tách một lớp tĩnh lớn thành các lớp nhỏ hơn, chuyên biệt hơn có thể là một bước để tuân theo nguyên tắc này. Nguyên tắc đảo ngược
D ependency : các lớp tĩnh không thể thực hiện các giao diện, vì vậy bất kỳ lớp nào sử dụng nó sẽ luôn phụ thuộc vào bất kỳ triển khai nào tồn tại vào thời điểm đó. Do đó các lớp tĩnh vi phạm nguyên tắc này.
Vì các lớp tĩnh không thỏa mãn cả 5 tiêu chí, nên chúng không RẮN.