본문 바로가기

Development/Programming

[Refactoring] Null 검사를 Null 객체에 위임 하자

이 방법은 Null 검사를 자주 하게 될 때 유용한다.


if (object == null)

result = 0;

else 

result object.getResult();


위와 같은 코드를 Null객체를 구현함으로써 한줄로 표현된다.


슈퍼 클래스

class Object {

abstract int getResult();

}


Null 클래스

class NullObject extends Object {


int getResult() {

return 0;

}

}


객체 생성시 Null 일 경우 NullObject로 만들어준다 그렇게 되면 위의 예제 코드는 다음과 같이 바꿀수 있다.


result = object.getResult();


위의 예제 말고도 set을 하는 함수에도 활용 할 수 있다. 이 방법은 Null이라는 예외도 클래스로 만들어 줌으로써 다형성으로 처리 할수 있도록 해주는 방법이다. 많은 곳에 활용할수 있는 방법인듯 하다.