프로그래밍/Java

Java - 변경 불가능한 객체 관한 이야기

seungdols 2015. 9. 15. 14:19



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public final class Period {
    //객체의 컴포넌트로는 가능하다면, 변경 불가능한 객체를 사용해야 한다는 점이 핵심이다.
    private final Date start;
    private final Date end;
 
//    public Period(Date start, Date end) {
//        if (start.compareTo(end) > 0) {
//            throw new IllegalArgumentException(start + " After " + end);
//        }
//        this.start = start;
//        this.end = end;
//    }
    public Period(Date start, Date end) {
        //인자 유효성을 검사하기 전에 방어적 복사본을 만든다.
        this.start = new Date(start.getTime());
        this.end = new Date(end.getTime());
 
        if (start.compareTo(end) > 0) {
            throw new IllegalArgumentException(start + " After " + end);
        }
 
    }
    //방어적 본사본을 반환하도록 접근자를 수정함
    public Date getEnd() {
        return new Date(end.getTime());
    }
 
    public Date getStart() {
 
        return new Date(start.getTime());
    }
 
}
cs





  •  무단 수정 및 배포는 금지합니다. 
  •  모든 내용은 본 블로그 운영자가 정리한 내용입니다. 
  •  참조한 정보에 대해서는 출처를 남기고 있습니다.
  •  틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요.
  •  choiseungho0822@gmail.com 보내주셔도 됩니다.
  •  Seungdols Wiki 운영중입니다.



반응형

'프로그래밍 > Java' 카테고리의 다른 글

Java - String  (0) 2015.09.15
Java - 오버로딩시 주의사항  (0) 2015.09.15
Intellij에서 Java lambda 사용시 Error 해결  (0) 2015.08.21
Java Generic Erasure  (0) 2015.08.01
상속에서 다형성 이야기  (0) 2015.07.28