Dev Books/Effective Java8 [item 24] 멤버 클래스는 되도록 static으로 만들라. 멤버 클래스는 되도록 static으로 만들라.중첩 클래스에는 4가지가 있으며 각각의 쓰임이 다르다. 경우에 따라 어떤 종류의 중첩 클래스를 사용해야 하는지 정리해보자. 먼저 중첩 클래스에 대한 핵심 포인트를 알고 정리하자. 멤버 클래스메서드 밖에서도 사용해야 하거나 메서드 안에 정의하기엔 너무 길 경우, 멤버 클래스로 만든다.비정적 멤버 클래스멤버 클래스의 인스턴스 각각이 바깥 인스턴스를 참조한다면, 비정적 멤버 클래스로 만든다.정적 멤버 클래스멤버 클래스에서 바깥 인스턴스에 접근할 일이 없다면, 무조건 static을 붙여서 정적 멤버 클래스로 만들자.익명 클래스중첩 클래스가 한 메서드 안에서만 쓰이면서 그 인스턴스를 생성하는 지점이 단 한곳이고해당 타입으로 쓰기에 접한한 클래스나 인터페이스가 이미 있는.. 2024. 4. 5. [item 3] private 생성자나 열거 타입으로 싱글턴임을 보증하라 singleton이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글톤의 전형적인 예로는 함수와 같은 무상태 객체나 설계상 유일해야 하는 시스템 컴포넌트를 들 수 있다. 그런데 클래스를 싱글톤으로 만들면 이를 사용하는 클라이언트를 테스트하기가 어려워질 수 있다. 타입을 인터페이스로 정의한 다음 그 인터페이스를 구현해서 만든 싱글톤이 아니라면, 싱글톤 인스턴스를 가짜(mock) 구현으로 대체할 수 없기 때문이다. 싱글톤을 만드는 방식은 보통 둘 중 하나다. 두 방식 모두 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static 멤버를 하나 마련해둔다. (이번 내용도 github에 정리되어 있으니 참고해주세요.) 싱글톤 (singleton) 싱글.. 2024. 1. 14. [item 2] 생성자에 매개변수가 많다면 빌더를 고려하라. 이번 시간에는 빌더패턴에 대해 정리해보자. 생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 빌더 패턴을 선택하는게 더 낫다. 매개변수 중 다수가 필수가 아니거나 같은 타입이면 특히 더 그렇다. 빌더는 점층적 생성자보다 클라이언트 코드를 읽고 쓰기가 훨씬 간결하고, 자바빈즈보다 훨씬 안전하다. (이번 내용도 github에 정리되어 있으니 참고해주세요.) 생성자에 매개변수가 많다면 빌더를 고려하라 생성자 경우 이런 코드는 작성하기도 어렵고 읽기도 어렵다. NutritionFacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27); 자바빈 경우 (우선) 생성자 경우보다 읽기 쉬운 코드가 되었다. NutritionFacts cocaCola = new Nutr.. 2024. 1. 14. [item1] 생성자 대신 정적 팩터리 메서드를 고려하라 안녕하세요? 이번 시간부터 Effective Java 도서를 읽으며 학습한 내용을 코드 예제를 생각하여 함께 작성해보려고 합니다. 모든 코드는 Github에 업로드되어 있어 편하게 확인하실 수 있습니다. (공부한 내용을 먼저 Github에 정리했으며, 블로그에도 포스팅할 예정이니 참고해주세요.) 생성자 대신 정적 팩터리 메서드를 고려하라 2장 객체 생성과 파괴의 item 1은 "생성자 대신 정적 팩터리 메서드를 고려하라"는 내용을 다루고 있다. 이번 장의 포인트는 다음과 같다. 포인트 public 생성자를 사용해서 객체를 생성하는 방법 말고, public static 팩토리 메소드를 사용해서 해당 클래스의 인스턴스를 만드는 방법도 있다. 이제 정적 팩터리 메서드를 고려했을 때 장점과 단점을 알아보자. 장.. 2024. 1. 14. 이전 1 2 다음