본문 바로가기
[Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. - static 팩토리 메소드와 생성자는 공통적 제약이 있다. 선택가능한 매개변수가 많아질 경우 신축성 있게 처리하지 못한다. - 텔레스코핑 생성자(telescoping constructor) 패턴이 대안이 될 수 있으나, 마찬가지로 매개변수 수가 증가하면 무척 번거로워 진다. 가독성도 떨어지고, 유지보수도 어려워진다. ( 갯수를 세고 의미를 파악하는데만도 한세월~ ) - 자바빈즈(Java Beans) 패턴이 두번째 대안이 될 수 있으나, 이 패턴은 심각한 단점을 가지고 있다. 여러 번의 메소드 호출로 나누어져 인스턴스가 완성되기 때문에 객체가 일관된 상태를 유지하지 못할 수 있다. ( multi thread 환경 ) 또한 자바빈즈는 불변 .. 2015. 2. 8.
[android] findViewById casting bolierplate removal. android, findViewById casting bolierplate removal. @SuppressWarnings("unchecked")public final E findView (int id) { return (E) findViewById(id);} @Overridepublic void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = findView(R.id.textview);Button button = findView(R.id.button);ImageView image = findView(R.id.imageview); myMethod( findView(R.id.imagev.. 2014. 4. 17.
Android 놓치기 쉬운 안드로이드 성능 향상 팁 Android 놓치기 쉬운 안드로이드 성능 향상 팁 출처 : http://developer.android.com/training/articles/perf-tips.html 아래 두가지 규칙이 모든 성능 향상의 기본 법칙이다. 1. 필요 없는 일은 하지 말아라. 2. 피할 수 있다면 memory 를 잡는 일을 하지 말아라. 참고로 micro-optimization 을 한다고 해도 모든 단말에서 똑같은 성능향상이 있는 것이 아니다.VM 의 종류, Processor 의 종류에 따라서도 조금씩 다르고, JIT 의 유무에 따라서도 다르다. 아래 항목들은 대부분의 환경에서 최적화시킬 수 있는 micro-optimization 기술을 소개한다. 쓸 데 없이 객체를 생성하지 말자. GC 를 유발하며, GC 는 conc.. 2014. 4. 3.
[Java] How to implements Iterator. Java, How to implements Iterator. Aggregate 인터페이스 public interface Aggregate{public abstract Iterator iterator();} Iterator 를 제공하려는 container class 는 Aggregate 를 implements 해야 함.Aggregate Interface 를 implement 한 class 를 ConcreteAggregate class 라 부른다. Iterator 인터페이스 public interface Iterator{public abstract boolean hasNext();public abstract Object enxt();} Iterator 를 구현한 class 를 ConcreteIterator .. 2014. 1. 10.
[Java] Generic Type Tutorial. Java, Generic Type Tutorial. Generic Type. 주로 Java Collection 에서 많이 사용한다.Collection 에서는 어떤 자료를 담을지 알 수 없으므로 최상위 객체인 Object 형태로 저장 및 관리하도록 설계되어 있다. 하지만 이렇게 Object 로만 두게 되면, 일관성 있는 Type 을 유지할 수 없는 경우도 많이 생긴다. 일관성 있는 Type 을 유지하지 못하면, Runtime Error 에 마딱뜨릴 확률이 높아져서 좋지 않다. 이것을 해결하기 위해 Compile Time 에 원하지 않는 Type 이 들어가는 것을 방지하기 위해 고안 된 것이 Generic Type 이다. Generic Class 정의 // T 라는 객체를 다루는 Containerpublic.. 2014. 1. 6.
[Java] Reflection Tutorial - Generics Java, Reflection Tutorial - Generics 일반적으로 Generics 정보는 runtime 에 사라진다고 알고 있지만 꼭 그렇지만은 않다. The Generics Reflection Rule of Thumb 일반적으로 List 와 같은 녀석들은 어떤 Generic 이 쓰였는지 알기 어렵다.하지만 parameterized 된 method 나 field 를 조사해보면,어떤 generic 이 사용되었는지 알 수 있다. Generic Method Return Types Method method = TestClass.class.getMethod( "getStringList", null );Type returnType = method.getGenericReturnType(); if ( ret.. 2013. 12. 27.
반응형