Skip to main content

무의미한 클래스는 무엇입니까?

computer 객체 지향 컴퓨터 프로그래밍 및 디자인에서 클래스 불변은 객체 인스턴스가 유효한 상태에 있는지 여부를 정의하는 데 사용할 수있는 일련의 규칙입니다.설계 관점에서 클래스 불변은 객체 내의 데이터가 적절한 기능 상태로 고려되어야하는 경계 집합입니다.클래스 불변량은 디자인 문서 또는 소스 코드 주석으로 정의 될 수 있거나 일부 프로그래밍 언어에서는 실행 가능한 컴퓨터 코드로 직접 구현할 수 있습니다.코딩 된 불변량 및 어설 션을 사용하는 프로그램은 불변 조건이 충족되지 않을 때 프로그램이 실행을 중단하거나 다양한 오류를 던질 수 있습니다.표준 오류 확인과 달리 클래스 불변은 일반적으로 클래스의 내부 구현이 작동하는지 확인하기 위해서만 사용되며 일반적으로 공개 문서 또는 프로그래밍 인터페이스에 나열되지 않습니다.본질적으로 수업에 대한 어설 션 모음입니다.간단한 용어로 다시 주장은 클래스 상태의 일부를 점검하고 프로그램 실행이 계속되도록 True로 평가 해야하는 진술입니다.어설 션의 한 예는 주어진 정수가 항상 1과 10 사이인지 확인하는 진술입니다. 클래스 불변량을 사용하는 경우 객체가 보유한 데이터의 모든 관련 데이터에 대해 어설 션이 평가되어 본질적으로 모든 데이터를 확인합니다.객체는 정의 된 범위 내에 있습니다.

많은 경우 클래스 불변을 사용하여 표준 오류 검사와 매우 유사합니다. 표준 오류 점검과 유사합니다. 여기서 변수는 사용 가능한 경계 내에 있거나 무효가되지 않도록 변수가 측정됩니다.그러나 클래스 불변성 사용과 표준 오류 검사의 차이점은 불변량과 어설 션이 코드에 본질적인 결함이 없으면 발생하지 말아야 할 오류를 포착하는 데 주로 사용된다는 것입니다.또 다른 차이점은 표준 오류 검사는 복구 및 프로그램 제어 흐름의 변화를 포함하는 경향이있는 반면, 불변 실패의 결과는 프로그램 종료 여야한다는 것입니다.클래스 불변 점검이 실패 할 때 대부분의 프로그램이 종료되는 이유는 객체가 손상된 상태에 있고 설계 관점에서 설계 계약을 준수하는 데 필요한 전제 조건과 사후 조건을 충족 할 수 없기 때문입니다.암시 적으로 정의되는 객체 지향 프로그래밍 언어에서 클래스 불변의 속성은 불변이 하위 클래스에 의해 상속 된 메커니즘이라는 것입니다.이는 서브 클래스가 상위 클래스에서 수행되는 변하지 않는 검사를 재정의하지 못하게합니다.궁극적으로 이것은 서브 클래스가 슈퍼 클래스에 의해 설정된 설계 계약을 중단 할 수 없다는 것을 의미하며, 이는 예측할 수없는 결과 또는 찾기 어려운 프로그램 오류를 유발할 수 있습니다.