Effective Java 를 보기로 마음먹었다.. 허구헌날 copy&paste하는 나를 볼때 자괴감이 들어서 우허엏어어엏
이래놓고 무슨 새로운 기술이니, 프레임웍이니.. 자바하나도 제대로 못하는주제에 말이여!! -ㅅ- 너무 비관적인가..ㅎ
그래서 공부한디!!
Effective 자바의 핵심은 리팩토링! 즉, 구현에 급급한 것이 아닌,
"어떻게하면 시스템의 구조를 향상시키는가, 코드중복을 피할수 있는가"
1) 불필요한 객체 생성을 줄여라!!
- 그래서 factory 메소드를 통한 Factory패턴을 추천.
Map<String, List<String>> m = new HashMap<String,List<String>>();
public static<K,V> HashMap<K,V> newInstance(){
return new HashMap<K, V>();
}
-> Map<String, List<String>> m = HashMap.newInstance();
2) 항목이 많을 경우 Builder를 사용해라!
: 항목만큼 주구장창 생성자를 오버로딩(타입이 다르지만 동일한 생성자/메소드)하는 것을
- 텔레스코핑 생성자(Telescoping Constructor)
: 기본생성자로 만들고, set메소드를 통한 자바빈즈 패턴도 있다.
: 개선해주는 것이 바로 Builder!! 간지난다!!
public class Sample{
private final int a;
private final int b;
public static class builder{
private final int a;
private final int b;
public builder(){}
public builder a(int val){ this.a = val return this};
public builder b(int val){ this.b = val return this};
public Sample build(){
return new Sample(this);
}
}//end builder
private Sample(builder b){
a = b.a;
b = b.b;
}
}
//줄줄이 사탕처럼 쓸수가 있다!!!
Sample s = new Sample.builder().a(100).b(200).build();
단, 위 예제는 그냥 테스트로 만든거고, 항목이 4개이상처럼 많을 경우 사용하는 것을 추천한다..
솔직히 항목 얼마되지도 않는데, 저렇게 inner클래스만들것까진 없잖겟슴??
허세도 아니고 ㅎㅎ
'자바 기본 공부 > 기초 이론' 카테고리의 다른 글
Map to Object 와 Object to Map (0) | 2013.04.23 |
---|---|
Java Thread Pool 예제 (0) | 2013.03.25 |
Java Annotation 기초(Basic) (0) | 2012.12.24 |
OracleDataSource를 사용한 JDBC 기초이론 (0) | 2009.06.23 |
자바 JDBC 기초 (0) | 2009.06.23 |