Skip to main content

Một lớp bất biến là gì?

Trong lập trình và thiết kế máy tính theo định hướng đối tượng, một lớp bất biến là một tập hợp các quy tắc có thể được sử dụng để xác định xem một thể hiện đối tượng có tồn tại ở trạng thái hợp lệ hay không.Từ góc độ thiết kế, một bất biến lớp là một tập hợp các ranh giới giữa dữ liệu trong một đối tượng phải rơi để được xem xét ở trạng thái chức năng, thích hợp.Một lớp bất biến có thể được xác định trong tài liệu thiết kế hoặc nhận xét mã nguồn hoặc, trong một số ngôn ngữ lập trình, có thể được thực hiện trực tiếp trong mã máy tính có thể hành động.Một chương trình sử dụng các bất biến và xác nhận được mã hóa có thể khiến chương trình ngừng thực thi hoặc ném các lỗi khác nhau khi các điều kiện bất biến không được đáp ứng.Không giống như kiểm tra lỗi tiêu chuẩn, các bất biến lớp thường chỉ được sử dụng cho mục đích đảm bảo rằng việc thực hiện bên trong của một lớp đang hoạt động và chúng thường không được liệt kê trong tài liệu công khai hoặc giao diện lập trình.Về cơ bản là một tập hợp các xác nhận cho một lớp.Một khẳng định, một lần nữa theo các thuật ngữ đơn giản, là một tuyên bố kiểm tra một phần trạng thái của lớp và phải đánh giá để thực hiện chương trình để tiếp tục.Một ví dụ về khẳng định là một tuyên bố đảm bảo số nguyên nhất định luôn luôn nằm trong khoảng từ 1 đến 10. Khi sử dụng bất biến lớp, các xác nhận được đánh giá cho tất cả các phần có liên quan của dữ liệu do đối tượng nắm giữ, về cơ bản là tất cả các dữ liệu trongĐối tượng nằm trong các phạm vi được xác định. Trong nhiều trường hợp, sử dụng một lớp bất biến tương tự như kiểm tra lỗi tiêu chuẩn, trong đó các biến được đo để đảm bảo chúng nằm trong ranh giới có thể sử dụng hoặc không phải là null.Tuy nhiên, sự khác biệt giữa sử dụng bất biến lớp và kiểm tra lỗi tiêu chuẩn là các bất biến và xác nhận chủ yếu được sử dụng để nắm bắt các lỗi không nên xảy ra trừ khi có lỗ hổng nội tại trong mã.Một điểm khác biệt khác là kiểm tra lỗi tiêu chuẩn có xu hướng liên quan đến việc phục hồi và thay đổi trong luồng kiểm soát chương trình, trong khi kết quả của một lỗi bất biến là chấm dứt chương trình.Lý do hầu hết các chương trình chấm dứt khi kiểm tra bất biến lớp không thành công là do đối tượng ở trạng thái bị tổn thương và không thể, từ một quan điểm thiết kế, để thực hiện các điều kiện tiên quyết và sau điều kiện cần thiết để tuân thủ hợp đồng thiết kế của nó.Các thuộc tính của một lớp bất biến trong các ngôn ngữ lập trình định hướng đối tượng, trong đó chúng được xác định ngầm là bất biến là một cơ chế được kế thừa bởi bất kỳ lớp con nào.Điều này ngăn chặn một lớp con ghi đè bất kỳ kiểm tra bất biến nào được thực hiện trong lớp cha.Cuối cùng, điều này có nghĩa là một lớp con không thể phá vỡ hợp đồng thiết kế được thiết lập bởi siêu lớp, điều này có thể gây ra kết quả không thể đoán trước hoặc lỗi chương trình khó tìm.