책/EffectiveJava 3

10장 예외

효과적으로 예외를 다루는 지침  예외는 진짜 예외 상황에서만 사용하라 예외 처리를 통해 프로그램 코드를 작성하지말자 -> 예외가 터져야 끝나는 형식의 코드...흐름의 제어용으로 예외를 터트리지말자 복구할 수 있는 상황에는 Checked 예외를, 프로그래밍 오류에는 Runtime 예외를 사용하라호출하는쪽에서 복구할 수 있는 상황에서는 checked Exception을 사용하자API 사용자 ( 호출자 ) 에게 다시 복구하라고 요구하는것. 복구할 수 있는지 없는지 확신이 안간다면 런타임 예외를 사용하자  필요없는 Checked Exception 사용을 피하라 컴파일 상에서 예외를 처리하기때문에 checked 예외를 사용하는 메서드를 호출할 경우 해당 메서드에서 try catch를 하던지 상위 메서드로 thro..

책/EffectiveJava 2024.09.05

4장 클래스와 인터페이스

추상화의 기본 단위인 클래스와 인터페이스는 자바 언어의 심장과도 같다. 클래스와 멤버의 접근 권한을 최소화 하라.잘 설계된 컴포넌트는 외부 세계로부터 내부 로직을 얼마나 잘 숨겼느냐로 갈린다.  오직 API를 통해서만 외부 세계와 소통하는 캡슐화는 소프트웨어 설계 근간이 되는 원리. 정보 은닉 ( 캡술화의 장점 )시스템 개발 속도를 높인다.시스템 관리비용을 낮춘다. ( 내부 로직 파악 없이도 빠르게 컴포넌트 사용이 가능해 디버깅 및 교체 비용이 적다 )성능 최적화 ( 캡슐화를 통해 결합도를 낮추고 응집도를 높여 해당 컴포넌트만 최적화가 가능 )컴포넌트의 재사용성을 높인다. ( 외부에 의존하지않고 독자적으로 동작하기때문 )자바는 모든 클래스와 접근성을 가능한 한 좁혀야 한다. 라는 기본 원칙이 존재한다. ..

책/EffectiveJava 2024.08.31

1장 객체의 생성과 파괴

정적 팩토리 메서드를 고려하라 public class Boolean { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); private final boolean value; private Boolean(boolean value) { this.value = value; } public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE); }} 정팩 팩토리 메서드가 생성자보다 좋은 이유 다섯가지이름을 가질 수 있다.이름을 잘 지으면 객체의 특성..

책/EffectiveJava 2024.08.24