2013-06-01 5 views
0

특정 클래스에 대한 불변성을 결정하는 데 결정적인 절차가 있는지 또는 경우에 따라 변경되는지 궁금합니다.코드 내의 클래스 불변량

은 분명히 그것은

내가 특정 클래스에 대한 최선의 불변을 결정하기 위해 다음과 같은 수 있습니다 가이드의 어떤 종류가 있는가, 특정 변수에 따라 달라 문을 필요로하지만 내 질문은? 그들이하도록하는 경우 계약 개념에 의해

답변

1

디자인이 약간 복잡

감사합니다 언어를 객체 지향.

클래스 불변성은 메서드가 호출 될 때 (모든 메서드에 공통적 인 사전 조건과 같이) 클래스의 각 인스턴스가 가질 수있는 속성이며 반환 할 때 각 메서드와 생성자는 반환 할 때 그들은 (일반적인 사후 조건처럼) 종결된다.

일관성 조건을 표현하는 데 적합합니다. 실제 지갑을 모델링하는 월렛 클래스는 포함 된 금액이 항상 양수임을 클래스가 불변하게 만들 수 있습니다.

나머지 계약과 마찬가지로 클래스 invariants도 상속됩니다. 새로운 메소드 구현은 대체 메소드와 동일한 보증을 제공해야합니다.

+0

흠 좋아, 그게 조금 도움이 될 것 같아. 나는 그들을 식별하는 걸 배우고 있다고 생각해. 그냥 천천히 모두 다. – Jim