[Java] 메소드의 구현시 주의 사항

이현준·2020년 10월 1일
1

Java

목록 보기
5/15
post-thumbnail

구현하기 전 검토사항 7가지

1. 객체 메소드 vs. 클래스 메소드 (일반 함수-static 이용하는거)

객체 상태를 전혀 사용하지 않는 등 객체 메소드로 부적절한 것은 아닌지

2. 객체 메소드의 위치

혹 다른 클래스에 정의하는 것이 더 적절한 것은 아닌지

3. 메소드의 접근 권한

외부와 상호 작용을 위해 필요한 것만 public

4. 메소드의 사전/사후 조건

메소드의 매개 변수 수가 너무 많으면

5. 사용할 테스트 케이스

6. 예외적인 상황

7. 부작용 여부

사전 조건(Preconditions)

메소드의 호출자가 지켜야 하는 요구사항
주로 오동작 방지, 오류를 찾을 때 사용

종류

1. 인자 값

2. 객체의 상태

ex) BankAccount의 deposit 메소드의 사전조건 : amount > 0
위배된 상태에서 메소드가 호출되면 그 결과에 대해서는 메소드 구현자는 책임을 지지 않음

사전 조건이 위배 된 경우

방법 1.예외 처리

방법 2.아무것도 하지 않음 (정상적인 경우를 수행하지 않는다는 말)

사후 조건(Postconditions)

사전 조건에 따라 메소드가 호출되었을 때 메소드 실행 후 보장되는 조건
보통 반환 값 또는 객체의 상태를 말한다.
주로 검사를 위해 사용

종류

1. 반환 값의 정확성

2. 객체의 상태

Class invarinat (불변 조건 - 테스트에서 활용 가능한 조건이 됨)

이 클래스의 객체가 항상 만족해야 하는 조건

클래스를 설계할때 어떤 클래스 invariant가 있는지 찾아내는 것이 필요하며, 메소드를 구현할 때 invariant들이 항상 만족되도록 구현하여야 함

0개의 댓글