메소드
컬렉션 접근자 메소드
컬렉션에 대한 접근을 어떻게 제공할꺼냐? 간단한 방법은 getter 메소드를 제공해주는것인데 반환 하기전에 수정할수 없는 컬렉션으로 반환 하는것이다.
만약 하나씩 접근한다면 순차열람자를 반환하는 메소드를 제공해라
불린 설정 메소드
불린 살태를 설정하는 가장 좋은 프로토콜은 설정 메소드를 사용하는것
클라이언트가 동적으로 바꾸는 유연성이 필요하는 경우라면
1 | void valid(){} |
위와 같은 방법도 괜찮다. 상태마다 메소드를 제공해서 인터페이스를 더욱 명확하게 할수 있다.
질의 메소드
때로 객체는 다른 객체의 상태에 따라 결정을 내려야 한다. 객체가 프로토콜을 통해 다른 객체의 셜정을 도와야 할 경우에는 be동사나 have 동사를 사용하라
동등성 메소드
객체의 동일성이 아닌 동등성을 비교해야 하는 경우 equals와 hashcode를 구현하라
취득 메소드
객체 상태에 대한 접근을 허용하기 위한 한가지 방법은 상태를 반환하는 메소드를 만드는것이다.
내부 취득 메소드는 게으른 초기화나 캐쉬를 구현할 경우 유용하다 하지만 내부 취득 메소드 사용은 필요할때까지 미루는 편이 낫다.
설정 메소드
필드 값을 설정하는 메소드가 필요하면 set이란 접두어를 붙인다. 인터페이스에 설정 메소드를 포함 시키면 내부 구현을 노출시키게 된다.
안전한 복사
취득 메소드와 설정 메소드를 사용하면 참조 문제가 발생하는데 안전한 복사기법을 사용해서 처리 할수도 있다.