티스토리 뷰
Null Object Pattern
1. Null Object Pattern이란?
객체가 존재 하지 않는 경우의 처리를 위해 많은 경우 if (ref == null) 혹은 try catch 구문을 사용해서 예외 처리를 한다.
Null Object Pattern이란 유저가 직접 null check를 하지 않고, 정의된 액션을 수행을 하지만 수행의 내용은 비어있는 빈 객체를 기본으로 제공해 줌으로서 예외 처리를 사전에 피하는 안전한 방식의 프로그래밍 패턴이다.
특히 DB에서 데이터를 가지고 오는 경우 id값에 따라 null을 가져올 가능성이 매우 높고, 이를 미리 예측하기도 힘든 경우가 많다. 이럴 경우 예외처리를 하는 것은 가독성을 떨어뜨릴 수 있어 Null Object Pattern을 사용해서 NullPointerException을 방지한다.
2. 널 오브젝트 패턴의 장단점
장점
- 클라이언트 코드에서 null 값을 비교하는 구문을 최소화 할수 있다.
- 라이브러리를 제공하는 측면에서 안정성있는 API를 제공할수 있다.
- 기존에 존재하는 어플리케이션 코드의 변함없이 기능을 제거하고자 할 때
- 기존에 필요는 없지만 로직상 반드시 호출하게 되어있는 코드가 있다고 가정하자. 예) logger 가 구현되어 있었고, 어플리케이션에서 이를 호출하고 있는데 더이상 logger가 필요하지 않을때. 이럴때 null object를 기존의 logger와 바꿔주면 어플리케이션의 변형없이 그대로 사용할수 있다.
단점
- Null 객체를 요구하는 클래스마다 인터페이스를 선언하고 이를 구현하는 Null 객체를 만들어주어야 한다.
- 클라이언트에서 Null 객체의 존재를 모르는 경우, 디버깅시에 약간의 혼선이 올 수 있다.
3. 활용 예시
Collections.emptySet, Collections.emptyList, #Collections.emptyMap
https://blog.naver.com/2feelus/220669532267
'JAVA > JAVA' 카테고리의 다른 글
[JAVA] SQL / JDBC (0) | 2019.10.09 |
---|---|
[JAVA] Maven 프로젝트 (0) | 2019.10.09 |