Effective Java

java

[effective java] 생성자에 매개변수가 많다면 빌더를 고려하자

빌더 패턴 정적 팩터리와 생성자에 선택적 매개변수가 많을 때 고려할 수 있는 방안 대안1: 점층적 생성자 패턴 또는 생성자 체이닝 • 매개변수가 늘어나면 클라이언트 코드를 작성하거나 읽기 어렵다. public class A{ int a; int b; int c; A(int a,int b) {}; //필요한 필드만 주입하여 생성하는 경우가 있다. A(int b){};//3개 필드 ->최대 2^3==8개의 생성자가 생성된다. ............ } 대안2: 자바빈즈 패턴 (기본 생성자로 생성 후, setter를 통해 필요한 의존관계를 주입) • 완전한 객체를 만들려면 메서드를 여러번 호출해야 한다. (일관성이 무너진 상 태가 될 수도 있다.) ex) A객체는 a,b,c 객체를 주입받아야 사용될 수 있는데..

java

[이펙티브 자바] 정적 팩토리 메소드

정적 팩토리 메소드 정적 팩토리 메서드란 객체 생성의 역할을 하는 클래스 메서드 이다. 정적(static) 이란? 고정적이기에 인스턴스를 생성하지 않아도 사용할 수 있다. 정적 메소드: 인스턴스를 생성하지 않아도, 호출 메소드를 만들 수 있다. final과 헷갈릴 수 있는데, final은 "최종적인", 즉 한번 값이 할당되면 "불변" 이라는 특성을 가지게 해준다. 추가적으로, 전역 변수와 정적 변수의 차이점이 헷갈리는 경우가 많아, 둘의 차이점을 정리해보겠다. Global VS Static 1) 전역(global) 변수는 다른 파일에서도 가져다 쓸수 있지만 정적(static) 변수는 해당 파일의 scope안에서만 접근이 가능하다. 2) 초기화 하지 않은 정적(static) 변수의 경우 본문에서 사용하지 ..

java

[이펙티브 자바] ENUM

열거 타입(ENUM) 상수 목록을 담을 수 있는 데이터 타입. • 특정한 변수가 가질 수 있는 값을 제한할 수 있다. 타입-세이프티 (Type-Safety)를 보장할 수 있다. (코드의 안정성 향상) • ENUM을 사용하면 가독성이 올라간다.( int 통해 0: 실패, 1: 성공 보다 Status.FAIL, Status.SUCCESS와 같이 의미를 담을 수 있다.) • 싱글톤 패턴을 구현할 때 사용하기도 한다. 타입 세이프티 보장 만약 int로 다음과 같이 status를 구분한다 생각해보자 0-> 주문 실패 1-> 주문 완료 ..... int status; .... if(status==0)//주문 실패 로직 수행 if(status==1)//주문 성공 로직 수행 status는 int 로 선언되었기에 사실상..

코앤미
'Effective Java' 태그의 글 목록