Null Object Pattern
널 오브젝트 패턴을 정리한다.
기존의 not null check
1 | Employee e = DB.getEmployee("Bob"); |
not null 확인은 관용적인 표현이지만 보기 싫고, 에러가 발생하기 쉽다.
DB.getEmployee 가 null 대신 예외를 발생시키면 에러가 발생할 위험을 감소시킬 수 있다.
하지만, try/catch 블록이 추가되어야한다.
Null Object Pattern 적용
널 오브젝트 패턴을 사용하면 null 검사 코드가 제거되고 코드를 단순화시킨다.
1 | public class DB { |
없는 직원을 익명 내부 클래스로 만들어서, 인스턴스가 오직 하나임을 보장한다.
없는 직원 내부에서는, isTimeToPay 는 false 를 반환하고 아무 임금도 지급하지 않는다.
클린 소프트웨어 <로버트 C.마틴>