2022-12-22

최찬호·2022년 12월 22일
0

캡슐화란 "은닉성"

Null의 도입이 실수다(제작자 Tony hoare)
1. 초기화 되어있지 않은 상태
2. 정의 되지 않은 상태
3. 아무런 값도 존재하지 않은 상태

매번 Runtime ->> null 체크를 해야한다는 건가????
번거로워.... 비효율적이야

1. assert (단정문) jdk 1.4 쓰지마라, 느려 (사용할 이득이 존재하지않음)
2. jdk 1.8 isNull(), nonNull(), requireNonNull()

기본타입은 null체크가 필요하지 않다. 고로 해당 로직에 Null값이 들어오는 경우가 없을 시 기본타입으로 사용을 고려.

null 핸들링 방법(개선)
1. 선언과 동시에 초기화
2. 다양한 유틸클래스 활용
3. null 파라미터가 존재한다면, 오버로딩으로 교체
4. List일땐 빈 리스트 활용 -> Collections.emptyList();
5. 상황에 따라 Null Object Pattern 활용
6. !!!!!!최대한 null을 직접 핸들링하는 것은 지양!!!!!!!!!!

Optional -> null 핸들링 기법 1.8
랩퍼클래스.

컨슈머, 서플라이어, predicate, function

null 대신 Optional.empty 사용하기
기존 시스템이 null을 반환한다면 Optional.ofNullable로 사용하자
-- 가독성이 떨어질 수 있으니 주의!!!!

Optional -> 메서드의 반환유형으로 사용될 목적으로 만들어짐

side effect를 줄인다 -> 함수는 하나의 기능만을 가지도록 한다.(순수 함수)

error가 발생한 곳에서 cause를 보내줘야 한다. 컨텍스트 스위칭 일어난다. 이유를 모르기에 알려줘야함

profile
체득하고 이해하자

0개의 댓글