본문 바로가기

이펙티브자바3

이펙티브 자바 Item 4 :: 인스턴스화와 private 생성자 이 글은 이펙티브 자바 아이템 4를 읽고, 백기선의 '이펙티브 자바 완벽 공략 1부'의 아이템 4 강의를 듣고 정리한 글입니다. 인스턴스화를 막으려거든 private 생성자를 사용하라 기본 생성자 상속 클래스는 상위 클래스의 기본 생성자를 호출한다. AssertionError static 메서드 Class 멤버인지 Obect 멤버인지 구분하는 자바 키워드인 static ! static 메서드는 클래스를 통해 접근할 수 있다. public class UtilityClass { public static String hello() { return "hello"; } public static void main(String args[]) { UtilityClass.hello(); } } ⬇️ 이런 static 메.. 2022. 4. 24.
Builder Pattern과 lombok @Builder Builder는 주로 lombok의 @Builder 어노테이션을 이용해 쉽게 사용해서 직접 구현해본 적은 한 번뿐이었다. 이펙티브 자바를 읽다 Builder 패턴이 나온 김에 예제를 따라서 직접 구현해보기로 했다. 예제 클래스명은 Coffee로 바꿔서 구현했다. 구현 public class Coffee { private String bean; private boolean water; private boolean syrup; public Coffee(Builder builder) { bean = builder.bean; water = builder.water; syrup = builder.syrup; } public static class Builder { //필수 매개변수 private String be.. 2022. 4. 10.
이펙티브 자바 Item1 :: 객체 생성과 파괴 정적 팩토리 메서드 인스턴스 생성 시 객체의 특성, 객체의 의미를 더 잘 보여줄 수 있다. 직관적으로 하나의 시그니처로는 생성자를 하나만 만들 수 있다. 한 클래스에 시그니처가 같은 생성자가 여러 개 필요할 것 같으면, 생성자를 정적 팩토리 메서드로 바꾸고 각각의 차이를 잘 드러내는 이름을 지을 것. 정적 팩토리 메서드를 가진 Class public class Coffee { private String bean; private String water; private Coffee(String bean) { this.bean = bean; } private Coffee(String bean, String water) { this.bean = bean; this.water = water; } public st.. 2022. 4. 3.