이펙티브자바

클라이언트가 클래스의 인스턴스를 얻는 방법 중 한가지로 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공하는 방법이 있다. (그 클래스를 반환하는 단순한 정적 메서드) boolean 값을 받아 Boolean 객체 참조로 변환해 준다. public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } 정적 팩터리를 사용했을 때 생성자 보다 좋은점과 나쁜점을 알아보자. 장점 첫 번째, 이름을 가질 수 있다. 정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. BigInteger (int bitLength, int certainty, Random rnd) - 생성자 ..
private final List cheesesInStock = ...; /** * @return 매장 안의 모든 치즈 목록을 반환한다. * 단, 재고가 하나도 없다면 null을 반환한다. */ public List getCheese(){ return cheesesInStock.isEmpty() ? null : new ArrayList(cheesesInStock); } 위의 코드의 문제점은 null을 반환한다는 것이다. 재고가 없다고 해서 특별히 취급할 이유는 없는대도 말이다.. 만약에 재고가 없을 경우 null을 반환하는 것을 고집한다면, 이 메소드를 사용하는 모든 클라이언트는 아래와 같은 방어 코드를 넣어줘야 한다. List cheeses = shop.getCheese(); if(cheeses != ..
깡냉쓰
'이펙티브자바' 태그의 글 목록