[Effective Java] Item05. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
·
Java & Kotlin/DesignPattern
🧐 들어가기 전...많은 클래스는 하나 이상의 기본 자원에 의존한다. 객체 지향 언어에서는 각각의 객체들이 서로를 필요로 하며, 비즈니스 로직을 수행해나간다. 객체는 서로의 메서드를 호출하거나 데이터를 교환하면서 협력하며,이러한 상호작용을 통해 애플리케이션의 주요 기능을 구현한다. 이 과정에서 하나의 객체가 다른 객체의 인스턴스를 생성하고 의존하는 구조는 자연스럽게 나타나지만, 잘못된 설계 방식으로 인해 코드의 유연성과 재사용성이 저하될 위험이 있다. 단순히 new 생성자를 통해서 인스턴스를 생성하는 것은 잘못된 방식일까?그렇다면 어떤 방식으로 객체의 인스턴스를 생성해야하고, 어떻게 의존성을 관리해야 올바른 설계를 할 수 있을까?✅ 기존의 문제점 1️⃣ 정적 유틸리티 클래스의 부적절한 사용public ..
[Effective Java] Item04. 인스턴스화를 막으려거든 private로 선언하라.
·
Java & Kotlin/DesignPattern
🧐 들어가기 전...코드를 구성하다 보면, 정적 메서드와 정적 필드의 묶음으로 클래스를 구성하고 싶을 때가 찾아온다.// 비인스턴스화 가능한 유틸리티 클래스public class MathUtility { // 상수 필드 public static final double PI = 3.14159; public static final double E = 2.71828; // 정적 메서드: 두 수의 최대값 계산 public static int max(int a, int b) { return (a > b) ? a : b; } // 정적 메서드: 두 수의 최소값 계산 public static int min(int a, int b) { return ..
[Effective Java] Item03. private 생성자나 enum 타입으로 싱글톤임을 보장하라.
·
Java & Kotlin/DesignPattern
🧐 들어가기 전...싱글톤 패턴이란?싱글톤: 클래스가 단 "하나의 인스턴스"만 가지도록 보장 하나의 인스턴스만 가졌을 때의 장점은 "일관성"에서 비롯된다. 예를 들어, 우리나라의 화폐가 발행되는 곳은 중앙은행인 한국은행에서만 발행된다.만약에 화폐를 한국은행에서만이 아닌 여러 곳에서 찍어낸다면 일관성이 깨지게 될 것이다.통화의 흐름을 파악하기가 어렵게 되고, 부정확한 화폐가 유통될 수도 있다. 즉, 하나의 기관에서 모든 것을 관리함으로써 일관성과 신뢰성을 챙길 수 있다. 싱글톤의 대상은 무상태(stateless)객체 혹은 설계상 유일해야 하는 시스템 컴포넌트가 된다. [이팩티브 자바 中] 이처럼, 코드를 짤 때에도 하나의 인스턴스만 가지도록 보장해야하는 경우가 있따른다.이는 여러 인스턴스를 허용하지 않음..
[Effective Java] Item02. 생성자 매개변수가 많은 경우에 빌더 사용을 고려해 볼 것
·
Java & Kotlin/DesignPattern
🧐들어가기전..[!NOTE]클래스가 가지고 있는 필드 변수가 많을 때,선택적인 필드만 초기화하는 생성자를 만들려면 어떻게 해야할까?public class Character { private final String name; private final int faceSize; private final int neckSize; private final int bodySize; private final int armSize; private final int legSize; public Character(String name) { this(name, 0); } ...}만약 정적팩토리를 사용한다면 선택적 매개변수가 많다면 사용하기가 힘들 것이다.따라서 ..
[Effective Java] Item01. 생성자 대신 static 팩토리 메소드를 고려해 볼 것
·
Java & Kotlin/DesignPattern
[!NOTE]이 책에서 성능에 집중하는 부분은 많지 않다.대신 프로그램을 명확하고, 정확하고, 유용하고, 견고하고, 유연하고 관리하기 쉽게 짜는 데 집중한다.✅ Static Factory Method(정적 메소드)🧐들어가기전..java에서 객체를 생성하기 위한 방법으로는 크게 두 가지가 있다. 1. 생성자class Car{ private final String name; // 생성자 public car(String name){ this.name = name; } } 2. 정적 팩토리 메서드class Car{ private final Car INSTANCE = new Car(); private Car(){ } // 정적 팩토리 메서..
J_hzlo
'이펙티브 자바' 태그의 글 목록